using System.Diagnostics; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System; using SudokuWeek4.ViewModels; using System.Windows.Input; namespace SudokuWeek4 { public partial class MainWindow : Window { private int _boardSize = 3; private Boolean _cheatMode = false; private Boolean _sudokuDLL = true; private MainViewModel _mainViewModel; public MainWindow() { InitializeComponent(); _mainViewModel = new MainViewModel(mainGrid); Reset(_boardSize); } // Reset the gameField private void Reset(int boardSize) { _mainViewModel.Reset(boardSize); } // Save the game private void MenuItem_Save(object sender, RoutedEventArgs e) { _mainViewModel.Save(); } // Load the game private void MenuItem_Load(object sender, RoutedEventArgs e) { _mainViewModel.Load(); } // Reset the gameField private void MenuItem_ResetBoard(object sender, RoutedEventArgs e) { Reset(int.Parse(((MenuItem)sender).Tag.ToString())); } // Get a hint private void MenuItem_Hint(object sender, RoutedEventArgs e) { _mainViewModel.ShowHint(); } // Enable the sudoku DLL private void MenuItem_EnableDLL(object sender, RoutedEventArgs e) { _mainViewModel.EnableDLL(_sudokuDLL =! _sudokuDLL); } // Solve the sudoku puzzle private void MenuItem_Solve(object sender, RoutedEventArgs e) { _mainViewModel.SolvePuzzle(); } // Solve the sudoku puzzle partially private void MenuItem_SolvePartially(object sender, RoutedEventArgs e) { _mainViewModel.SolvePuzzle(2); } // Cheat private void MenuItem_CheatMode(object sender, RoutedEventArgs e) { _mainViewModel.Cheat(_cheatMode =! _cheatMode); } // Exit the application private void MenuItem_Quit(object sender, RoutedEventArgs e) { Application.Current.Shutdown(1); } // This method will check what to do if a key is pressed private void mainGrid_PreviewKeyDown(object sender, KeyEventArgs key) { _mainViewModel.keyPressed(key); } private void Window_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs click) { _mainViewModel.mouseClicked(sender, click); } } }