예제 #1
0
        static void Main(string[] args)
        {
            try
            {
                SudokuMapper       sudokuMapper       = new SudokuMapper();
                BoardStateManager  boardStateManager  = new BoardStateManager();
                SudokuSolverEngine sudokuSolverEngine = new SudokuSolverEngine(boardStateManager, sudokuMapper);
                SudokuFileReader   sudokuFileReader   = new SudokuFileReader();
                BoardDisplayer     boardDisplayer     = new BoardDisplayer();

                Console.WriteLine("Please enter the FileName that contains the sudoku puzzle");
                var fileName = Console.ReadLine();

                var sudokuBoard = sudokuFileReader.ReadFile(fileName);
                boardDisplayer.Display("Initial State", sudokuBoard);

                bool isSudokuSolved = sudokuSolverEngine.Solve(sudokuBoard);
                boardDisplayer.Display("Final State", sudokuBoard);

                Console.WriteLine(isSudokuSolved ? "Puzzle was solved" : "Falied to solve the puzzle");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Something went wrong, try again" + ex.Message);
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            try
            {
                Mapper            mapper            = new Mapper();
                BoardStateManager boardStateManager = new BoardStateManager();
                SolverEngine      solverEngine      = new SolverEngine(boardStateManager, mapper);
                FileReader        fileReader        = new FileReader();
                BoardDisplayer    boardDisplayer    = new BoardDisplayer();

                Console.Write("Enter the filename containing the sudoku puzzle: ");
                var filename = Console.ReadLine();

                var sudokuBoard = fileReader.ReadFile(filename);
                boardDisplayer.Display("Initial State", sudokuBoard);
                bool isSudokuSolved = solverEngine.Solve(sudokuBoard);
                boardDisplayer.Display("Final State", sudokuBoard);

                Console.WriteLine(isSudokuSolved
                    ? "Successfully solved puzzle!"
                    : "Unfortunately, our algorithms couldn't solve the sudoku puzzle");
            }
            catch (Exception ex)
            {
                Console.WriteLine("{0} : {1}", "Sudoku puzzle cannot be solved because there was an error: ", ex.Message);
            }
        }
        public void BoardDisplayer_WhenGiven2DArrayOfAllStars_ReturnsAllStars()
        {
            string[,] star2DArray = new string[3, 3] {
                { "*", "*", "*" }, { "*", "*", "*" }, { "*", "*", "*" }
            };
            BoardDisplayer boardDisplayer = new BoardDisplayer();
            string         result         = boardDisplayer.DisplayBoard(star2DArray);

            Assert.Equal("  1 2 3\n1 * * * \n2 * * * \n3 * * * ", result);
        }
        public void BoardDisplayer_WhenGiven2DArrayWithXIn11Position_ReturnsStringWithXInPosition11()
        {
            string[,] star2DArraywithX = new string[3, 3] {
                { "X", "*", "*" }, { "*", "*", "*" }, { "*", "*", "*" }
            };
            BoardDisplayer boardDisplayer = new BoardDisplayer();
            string         result         = boardDisplayer.DisplayBoard(star2DArraywithX);

            Assert.Equal("  1 2 3\n1 X * * \n2 * * * \n3 * * * ", result);
        }
예제 #5
0
        public static void Main()
        {
            try {
                var sudokuMapper      = new SudokuMapper();
                var boardStateManager = new BoardStateManager();
                var solverEngine      = new SudokuSolverEngine(boardStateManager, sudokuMapper);
                var boardDisplayer    = new BoardDisplayer();

                Console.WriteLine("Please enter the filename containing the sudoku puzzle");
                var fileName    = Console.ReadLine();
                var sudokuBoard = SudokuFileReader.ReadBoardFromFile(fileName);
                boardDisplayer.Display("Initial State", sudokuBoard);
                bool isSolved = solverEngine.Solve(sudokuBoard);
                boardDisplayer.Display("Final State", sudokuBoard);
                Console.WriteLine(isSolved ? "Sudoku puzzle was solved successfully" : "Current algorithms can " +
                                  "not solve this puzzle");
            }
            catch (Exception e) {
                Console.WriteLine("An error occured trying to solve sudoku puzzle : {0}", e.Message);
                Console.WriteLine(e.StackTrace);
            }
        }