Esempio n. 1
0
        public void MazeSolverTest_WhenMaze2_2_ThenFindsPath()
        {
            Maze maze = new Maze(3, 3);

            maze.Grid[0, 0].SetWall(Direction.right, false);

            maze.Grid[1, 0].SetWall(Direction.right, false);
            maze.Grid[1, 0].SetWall(Direction.left, false);
            maze.Grid[1, 0].SetWall(Direction.down, false);

            maze.Grid[2, 0].SetWall(Direction.left, false);
            maze.Grid[2, 0].SetWall(Direction.down, false);

            maze.Grid[0, 1].SetWall(Direction.down, false);

            maze.Grid[1, 1].SetWall(Direction.down, false);
            maze.Grid[1, 1].SetWall(Direction.up, false);

            maze.Grid[2, 1].SetWall(Direction.up, false);

            maze.Grid[0, 2].SetWall(Direction.up, false);
            maze.Grid[0, 2].SetWall(Direction.right, false);

            maze.Grid[1, 2].SetWall(Direction.up, false);
            maze.Grid[1, 2].SetWall(Direction.left, false);
            maze.Grid[1, 2].SetWall(Direction.right, false);

            maze.Grid[2, 2].SetWall(Direction.left, false);


            MazeSolver solver = new MazeSolver(maze);

            solver.MarkPath(0, 2, 2, 0);
            string expectedMaze = " _ _ _\n" +
                                  "|_ * *|\n" +
                                  "| |*|_|\n" +
                                  "|_ _ _|\n";

            Assert.AreEqual(expectedMaze, maze.ToString());
        }