コード例 #1
0
        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}");
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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();
        }
コード例 #4
0
 public SudokuSolverEngine(SudokuBoardStateManager sudokuBoardStateManager, SudokuMapper sudokuMapper)
 {
     _sudokuBoardStateManager = sudokuBoardStateManager;
     _sudokuMapper            = sudokuMapper;
 }
コード例 #5
0
 public SudokuSolverEngine(SudokuBoardStateManager sudokuBoardStateManager, SudokuBlockFinder sudokuBlockFinder)
 {
     _sudokuBoardStateManager = sudokuBoardStateManager;
     _sudokuBlockFinder       = sudokuBlockFinder;
 }
コード例 #6
0
 public SudokuSolverEngine(SudokuBoardStateManager state, SudokuMapper mapper)
 {
     _sudokuBoardStateManager = state;
     _sudokuMapper            = mapper;
 }