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}"); } }
static void Main(string[] args) { try { SudokuMapper sudokuMapper = new SudokuMapper(); SudokuBoardStateManager sudokuBoardStateManager = new SudokuBoardStateManager(); SudokuSolverEngine sudokuSolverEngine = new SudokuSolverEngine(sudokuBoardStateManager, sudokuMapper); SudokuFileReader sudokuFileReader = new SudokuFileReader(); SudokuBoardDisplayer sudokuBoardDisplayer = new SudokuBoardDisplayer(); Console.WriteLine("Please Enter The File Name Containing The Sudoku 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 Sudoku Puzzle!" : "Unfortunately, current algorithm(s) were not enough to solve the current Sudoku Puzzle!"); } catch (Exception ex) { //In Real World I Would Log This Message In A DataBase Console.WriteLine("{0} : {1}", "Sudoku Puzzle Cannot Be Solved Because There Was An Error:", ex.Message); } }
static void Main(string[] args) { SudokuBoardStateManager sudokuBoardStateManager = new SudokuBoardStateManager(); SudokuMapper sudokuMapper = new SudokuMapper(); Displayer displayer = new Displayer(); SudokuEngine sudokuEngine = new SudokuEngine(sudokuBoardStateManager, sudokuMapper); SudokuFileReader sudokuFileReader = new SudokuFileReader(); string fileName = "SudokuEasy.txt"; var sudokuBoard = sudokuFileReader.FileReader(fileName); displayer.Display("initial", sudokuBoard); sudokuEngine.SolveSudoku(sudokuBoard); displayer.Display("final", sudokuBoard); Console.ReadKey(); }
public SudokuSolverEngine(SudokuBoardStateManager sudokuBoardStateManager, SudokuMapper sudokuMapper) { _sudokuBoardStateManager = sudokuBoardStateManager; _sudokuMapper = sudokuMapper; }
public SudokuSolverEngine(SudokuBoardStateManager sudokuBoardStateManager, SudokuBlockFinder sudokuBlockFinder) { _sudokuBoardStateManager = sudokuBoardStateManager; _sudokuBlockFinder = sudokuBlockFinder; }
public SudokuSolverEngine(SudokuBoardStateManager state, SudokuMapper mapper) { _sudokuBoardStateManager = state; _sudokuMapper = mapper; }