private static void Main(string[] args) { Console.WriteLine("Begin solving Sudoku using combinatorial evolution"); Console.WriteLine("The Sudoku is:"); var sudoku = Sudoku.Difficult; Console.WriteLine(sudoku.ToString()); const int numOrganisms = 200; const int maxEpochs = 5000; const int maxRestarts = 40; Console.WriteLine($"Setting numOrganisms: {numOrganisms}"); Console.WriteLine($"Setting maxEpochs: {maxEpochs}"); Console.WriteLine($"Setting maxRestarts: {maxRestarts}"); var solver = new SudokuSolver(); var solvedSudoku = solver.Solve(sudoku, numOrganisms, maxEpochs, maxRestarts); Console.WriteLine("Best solution found:"); Console.WriteLine(solvedSudoku.ToString()); Console.WriteLine(solvedSudoku.Error == 0 ? "Success" : "Did not find optimal solution"); Console.WriteLine("End Sudoku using combinatorial evolution"); }
static string sudokusolution(string grid) { int[,] sudoku = new int[9, 9]; for (int i = 0; i < 9; i++) { for (int index = 0; index < 9; index++) { sudoku[i, index] = Convert.ToInt32(grid[index]); } } Console.WriteLine("Begin solving Sudoku using combinatorial evolution"); Console.WriteLine("The Sudoku is:"); Console.WriteLine(sudoku.ToString()); const int numOrganisms = 200; const int maxEpochs = 5000; const int maxRestarts = 40; Console.WriteLine($"Setting numOrganisms: {numOrganisms}"); Console.WriteLine($"Setting maxEpochs: {maxEpochs}"); Console.WriteLine($"Setting maxRestarts: {maxRestarts}"); var solver = new SudokuSolver(); var solvedSudoku = solver.Solve(sudoku, numOrganisms, maxEpochs, maxRestarts); Console.WriteLine("Best solution found:"); Console.WriteLine(solvedSudoku.ToString()); Console.WriteLine(solvedSudoku.Error == 0 ? "Success" : "Did not find optimal solution"); Console.WriteLine("End Sudoku using combinatorial evolution"); return(Convert.ToString(solvedSudoku)); }