예제 #1
0
        static void Main(string[] args)
        {
            SudokuWriter        sudokuWriter = new SudokuWriter();
            ImmutableSudokuGrid filledGrid   = sudokuWriter.CreateFilledGrid();

            filledGrid.PrintGrid();

            Console.WriteLine("\n");

            ImmutableSudokuGrid emptiedGrid = sudokuWriter.EmptyGridForHardSolve(filledGrid);

            emptiedGrid.PrintGrid();

            Console.WriteLine("\n");

            SudokuGrid   mutableEmptiedGrid = emptiedGrid.MakeMutableCopy();
            SudokuSolver sudokuSolver       = new SudokuSolver();

            sudokuSolver.Solve(mutableEmptiedGrid);
            mutableEmptiedGrid.PrintGrid();

            if (mutableEmptiedGrid.FindAllEmptySquares().Count != 0)
            {
                Console.WriteLine("\n");
                HarderSudokuSolver  harderSolver = new HarderSudokuSolver();
                ImmutableSudokuGrid solvedGrid   = harderSolver.Solve(emptiedGrid);
                solvedGrid.PrintGrid();
            }
        }
예제 #2
0
        public void MakeMutableCopy_ReturnsSudokuGridWithAllSameElementsAsImmutableVersion()
        {
            SudokuGrid mutableCopy = sudokuGrid.MakeMutableCopy();

            for (int i = 0; i < 9; i++)
            {
                for (int j = 0; j < 9; j++)
                {
                    Assert.AreEqual(sudokuGrid.Elements[i, j], mutableCopy.Elements[i, j]);
                }
            }
        }