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;
            }
        }
Example #2
0
        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;
            }
        }
        public MainWindow()
        {
            InitializeComponent();

            InputSudoku = new SolverCore.SudokuGrid();
            SudokuSolver = new SolverCore.SudokuSolver();
            SudokuSolver.MaxSolutions = 10000;

            SolveBtn.IsEnabled = false;
            PrevSolBtn.IsEnabled = false;
            NextSolBtn.IsEnabled = false;

            SolutionsStatusLabel.Content = "No solutions";
        }
Example #4
0
        public MainWindow()
        {
            InitializeComponent();

            InputSudoku  = new SolverCore.SudokuGrid();
            SudokuSolver = new SolverCore.SudokuSolver();
            SudokuSolver.MaxSolutions = 10000;

            SolveBtn.IsEnabled   = false;
            PrevSolBtn.IsEnabled = false;
            NextSolBtn.IsEnabled = false;

            SolutionsStatusLabel.Content = "No solutions";
        }
Example #5
0
        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);
        }
        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);
        }