Пример #1
0
        public override void Check(Board brd)
        {
            changes = false;
            List <char> list;

            foreach (Cell c in brd.board)
            {
                list = new List <char>(c.charChoices);
                if (c.charChoices.Count < (brd.n / 4))
                {
                    foreach (char v in list)
                    {
                        Board temp = new Board(brd);
                        temp.board[c.yPos, c.xPos].displayedChar = v;
                        SolverLoop l = new SolverLoop();
                        if (l.Run(temp))
                        {
                            c.displayedChar = v;
                            changes         = true;
                            break;
                        }
                    }
                }
                if (changes)
                {
                    break;
                }
            }
        }
Пример #2
0
        private void SolvePuzzle(object sender, RoutedEventArgs e)
        {
            sudokuGrid.IsEnabled = true;
            SolverLoop l = new SolverLoop();

            l.Run(brd);
            UpdateGrid();
        }