Exemple #1
0
        private void RecurseSolveBoard(Board myBoard, int start)
        {
            if (!myBoard.BoardValid())
            {
                myBoard = null;
                return;
            }

            myBoard.PrintBoard();
            Console.WriteLine();

            if (myBoard.BoardSolved())
            {
                boardArr = myBoard.boardArr;
                return;
            }

            for (int i = start; i < 81; i++)
            {
                if (myBoard.boardArr[i] == 0)
                {
                    for (int j = 1; j < 10; j++)
                    {
                        Board newBoard = new Board((int[])myBoard.boardArr.Clone());
                        newBoard.boardArr[i] = j;
                        RecurseSolveBoard(newBoard, i);
                    }
                    break;
                }
            }
        }