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(); } }
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]); } } }