示例#1
0
        private async void SolveSudoku(object sender, RoutedEventArgs e)
        {
            solving = true;

            ring.IsActive = true;
            status.Text   = "Solving . . .";

            animation.Text += "Current board: \n\n";
            Printboard(sudoku);

            await Task.Delay(1000);

            sudoku = await Task.Run(() => NewBoard.Solve(sudoku));

            if (Board.solvable == false)
            {
                ring.IsActive = false;
                status.Text   = "Sudoku cannot be solved!";

                Updateboard(sudoku);

                solving = false;
            }
            else
            {
                if (sudoku[0][0][0] == 0)
                {
                    ring.IsActive = false;
                    status.Text   = "Invalid sudoku!";

                    solving = false;

                    sudoku = NewBoard.Createboard();
                    Updateboard(sudoku);
                }
                else
                {
                    ring.IsActive = false;
                    status.Text   = "Succesfully solved!";

                    Updateboard(sudoku);

                    solving = false;
                }
            }
        }