static void Main(string[] args) { try { SodokuMapper sodokuMapper = new SodokuMapper(); SodokuBoardStateManager sodokuBoardStateManager = new SodokuBoardStateManager(); SodokuSolverEngine sodokuSolverEngine = new SodokuSolverEngine(sodokuBoardStateManager, sodokuMapper); SodokuFileReader sodokuFileReader = new SodokuFileReader(); SodokuBoardDisplayer sodokuBoardDisplayer = new SodokuBoardDisplayer(); Console.Write("Please enter the filename containing the Sodoku Puzzle: "); var fileName = Console.ReadLine(); var sodokuBoard = sodokuFileReader.ReadFile(fileName); sodokuBoardDisplayer.Display("Initial State", sodokuBoard); bool isSodokuSolved = sodokuSolverEngine.Solve(sodokuBoard); sodokuBoardDisplayer.Display("Final State", sodokuBoard); Console.WriteLine(isSodokuSolved ? "You have successfully solved this sodoku puzzle." : "Unforunately, current algorithm(s) were not enough to solve the current sodoku puzzle."); } catch (Exception ex) { Console.WriteLine("{0} : {1}", "Sodoku puzzle could not be solved because there was an error:", ex.Message); } }
public SodokuSolverEngine(SodokuBoardStateManager sodokuBoardStateManager, SodokuMapper sodokuMapper) { _sodokuBoardStateManager = sodokuBoardStateManager; _sodokuMapper = sodokuMapper; }