static void Main() { try { SudokoMapper sudokoMapper = new SudokoMapper(); SudokuBoardStateManager sudokuBoardStateManager = new SudokuBoardStateManager(); SudokuSolverEngine sudokuSolverEngine = new SudokuSolverEngine(sudokuBoardStateManager, sudokoMapper); SudokuFileReader sudokuFileReader = new SudokuFileReader(); SudokuBoardDisplayer sudokuBoardDisplayer = new SudokuBoardDisplayer(); Console.Write("Please enter the filename containing the Soduku Puzzle: "); var filename = Console.ReadLine(); var sudokuBoard = sudokuFileReader.ReadFile(filename); sudokuBoardDisplayer.Display("Initial State", sudokuBoard); bool isSudokuSolved = sudokuSolverEngine.Solve(sudokuBoard); sudokuBoardDisplayer.Display("Final State", sudokuBoard); Console.WriteLine(isSudokuSolved ? "You have successfully solved this Sudoko Puzzle" : "Unfortunately, current algorithm(s) were not enough to solve the current Soduku Puzzle!"); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine($"Sudoku Puzzle cannot be solved because there was an error: {ex.Message}"); } }
public SudokuSolverEngine(SudokuBoardStateManager sudokuBoardStateManager, SudokoMapper sudokoMapper) { _sudokuBoardStateManager = sudokuBoardStateManager; _sudokoMapper = sudokoMapper; }
public SimpleMarkupStrategy(SudokoMapper sudokoMapper) { _sudokuMapper = sudokoMapper; }
public NakedPairsStrategy(SudokoMapper sudokoMapper) => _sudokuMapper = sudokoMapper;