Esempio n. 1
0
        public void Start()
        {
            initialBoard.Refactor();
            currentBoard = SudokuBoard.DeepCopy(initialBoard);
            blankCells = currentBoard.GetPossibleGuesses();

            if( !currentBoard.Solved())
                GetPossibleGuesses();

            Console.WriteLine("\n\tSolving....");
            while (!currentBoard.Solved())
            {
                int numBlankCells = currentBoard.GetNumberOfBlank();

                TrySolving();

                if (numBlankCells == currentBoard.GetNumberOfBlank())
                    RecursiveGuess(currentBoard, 0);

                if (currentBoard.Finished() && !currentBoard.Solved())
                    Restart();
            }

            if (currentBoard.Finished() && currentBoard.Solved())
            {
                sw.Stop();
                Console.Clear();
                Console.WriteLine("\n\tElapsed: {0}", sw.Elapsed);
                Console.WriteLine("\t{0} SOLUTION'S FOUND", solutions);
                currentBoard.PrintEverything();
            }
        }
Esempio n. 2
0
        public void Start()
        {
            initialBoard.Refactor();
            currentBoard = SudokuBoard.DeepCopy(initialBoard);
            blankCells   = currentBoard.GetPossibleGuesses();

            if (!currentBoard.Solved())
            {
                GetPossibleGuesses();
            }

            Console.WriteLine("\n\tSolving....");
            while (!currentBoard.Solved())
            {
                int numBlankCells = currentBoard.GetNumberOfBlank();

                TrySolving();

                if (numBlankCells == currentBoard.GetNumberOfBlank())
                {
                    RecursiveGuess(currentBoard, 0);
                }

                if (currentBoard.Finished() && !currentBoard.Solved())
                {
                    Restart();
                }
            }

            if (currentBoard.Finished() && currentBoard.Solved())
            {
                sw.Stop();
                Console.Clear();
                Console.WriteLine("\n\tElapsed: {0}", sw.Elapsed);
                Console.WriteLine("\t{0} SOLUTION'S FOUND", solutions);
                currentBoard.PrintEverything();
            }
        }