private void OpenMenuItem_Click(object sender, RoutedEventArgs e) { SolverCore.SudokuGrid TempSudoku = new SolverCore.SudokuGrid(); Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog(); dlg.FileName = "Input"; // Default file name dlg.DefaultExt = ".json"; // Default file extension dlg.Filter = "Sudoku puzzles (.json)|*.json"; // Filter files by extension Nullable <bool> result = dlg.ShowDialog(); if (result == true) { string filename = dlg.FileName; try { SolverCore.Loader.LoadFromFile(filename, TempSudoku); } catch (Exception Exc) { string messageBoxText = "Unable to load selected file."; string caption = "Error"; MessageBoxButton button = MessageBoxButton.OK; MessageBoxImage icon = MessageBoxImage.Error; MessageBox.Show(messageBoxText, caption, button, icon); return; } InputSudoku = TempSudoku; if (InputSudoku.Valid == true) { SolveBtn.IsEnabled = true; } else { //Entered input is invalid. Notify user string messageBoxText = "Input sudoku is invalid"; string caption = "Error"; MessageBoxButton button = MessageBoxButton.OK; MessageBoxImage icon = MessageBoxImage.Error; MessageBox.Show(messageBoxText, caption, button, icon); SolveBtn.IsEnabled = false; } SudokuViewerPane.DisplayIncomplete(InputSudoku.Data); CurrentSolution = null; SolutionsStatusLabel.Content = "No solutions"; PrevSolBtn.IsEnabled = false; NextSolBtn.IsEnabled = false; } }
private void ShowSolution(int SolutionIx) { SolutionsStatusLabel.Content = string.Format("Solution {0}/{1}", CurrentlyShownSolutionIx + 1, SudokuSolver.Solutions.Count); CurrentSolution = SudokuSolver.ConvertSolution(SolutionIx); if (CurrentSolution.Valid == false) { //The solution is invalid. Notify user. This should never happen. string messageBoxText = "Solution found is invalid. The program has a bug."; string caption = "Error"; MessageBoxButton button = MessageBoxButton.OK; MessageBoxImage icon = MessageBoxImage.Error; MessageBox.Show(messageBoxText, caption, button, icon); } SudokuViewerPane.DisplaySolution(InputSudoku.Data, CurrentSolution.Data); }