static void Main(string[] args) { try { SudokuTextFileReader sudokuTextFileReader = new SudokuTextFileReader(); SudokuMatrixDisplayer sudokuMatrixDisplayer = new SudokuMatrixDisplayer(); SudokuMapper sudokuMapper = new SudokuMapper(); SudokuStateManager sudokuStateManager = new SudokuStateManager(); SudokuSolverEngine sudokuSolverEngine = new SudokuSolverEngine(sudokuStateManager, sudokuMapper); Console.WriteLine("Please enter the filename containing the Sudoku Puzzle:"); var filename = Console.ReadLine(); var sudokuMatrix = sudokuTextFileReader.ReadFile(filename); sudokuMatrixDisplayer.Display("Initial State", sudokuMatrix); bool isSudokuSolved = sudokuSolverEngine.Solve(sudokuMatrix); sudokuMatrixDisplayer.Display("Final State", sudokuMatrix); Console.WriteLine(isSudokuSolved ? "You have successfully solved this Sudoku Puzzle!" : "Unfortunatley, current algorithm(s) were not enough to solve the current Sudoku Puzzle!"); } catch (Exception ex) { // In real world we would want to log this message Console.WriteLine("{0} : {1}", "Sudoku Puzzle cannot be solved because there was an error:", ex.Message); } }
public SudokuSolverEngine(SudokuStateManager sudokuStateManager, SudokuMapper sudokuMapper) { this._sudokuMapper = sudokuMapper; this._sudokuStateManager = sudokuStateManager; }