示例#1
0
        static void Main(string[] args)
        {
            MazeSolver mazeSolver = new MazeSolver();

            string input = "";

            while (input != "exit")
            {
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("Enter file path or type 'exit': ");
                input = Console.ReadLine();

                if (input != "exit" && File.Exists(input))
                {
                    Maze maze = mazeSolver.SolveMaze(input);

                    if (maze == null)
                    {
                        Console.WriteLine("This maze is unsolvable");
                    }
                    else
                    {
                        mazeSolver.RenderMaze(maze);
                    }
                }
            }
        }
示例#2
0
        private void SetImage()
        {
            MazeSolver           mazeSolver       = new MazeSolver(maze);
            MazeImageConstructor imageConstructor = new MazeImageConstructor(maze, mazeSolver.Route, 3);

            MazePhoto.Source = imageConstructor.ImageSource;
        }
示例#3
0
        static void Main(string[] args)
        {
            List <List <int> > data   = new FileReader().Read("RPAMaze.txt");
            ILogger            logger = new ConsoleLogger();

            foreach (var list in data)
            {
                string msg = string.Empty;

                foreach (var item in list)
                {
                    msg += $"{item.ToString()} ";
                }

                logger.Log(msg);
            }

            logger.Log(Environment.NewLine);

            Solver mazeSolver = new MazeSolver(new List <ILogger> {
                logger,
                new FileLogger()
            },
                                               data
                                               );

            bool result = mazeSolver.Solve();

            logger.Log($"Maze is solveble: {result.ToString()}");
            logger.Log("Press any key to exit the program...");
            Console.ReadKey();
        }
示例#4
0
        public MazeSolverDemo()
        {
            InitializeComponent();

            maze       = MazeSolver.Instance;
            objEllipse = new RectangleF(eX, eY, 15, 15);
        }
示例#5
0
 static void Main(string[] args)
 {
     using (MazeSolver maze = new MazeSolver("maze.csa-challenge.com", 80))
     {
         maze.Solve();
     }
 }
示例#6
0
        public void SolveMazeWithProvidedData()
        {
            MazeSolver.MazeSolver mazeSolver = new MazeSolver.MazeSolver(new List <ILogger> {
                new FakeLogger()
            }, data2);
            bool result = mazeSolver.Solve();

            Assert.True(result);
        }
示例#7
0
        public void SolveMazeWithNewPoint()
        {
            MazeSolver.MazeSolver mazeSolver = new MazeSolver.MazeSolver(new List <ILogger> {
                new FakeLogger()
            }, data2);
            mazeSolver.StartPt = new Point(6, 1);
            bool result = mazeSolver.Solve();

            Assert.True(result);
        }
示例#8
0
        public static void Main(string[] args)
        {
            //read in the file from args
            MazeSolver ms = new MazeSolver();

            Console.WriteLine("Please type in the location of a file that has the adjacency list of an undirected graph: ");
            string filePath = Console.ReadLine();

            ms.ReadMazeFile(filePath);
        }
示例#9
0
        public static void Main(string[] args)
        {
            //read in the file from args
            MazeSolver ms = new MazeSolver();

            Console.WriteLine("Please type in the location of a file that has the adjacency list of an undirected graph: ");
            string filePath = Console.ReadLine();

            ms.ReadMazeFile(filePath);
        }
示例#10
0
        static void Main(string[] args)
        {
            MazeSolver maze = new MazeSolver();

            maze.InitializeMaze();
            maze.CreateMaze();
            maze.DisplayMaze();
            Console.WriteLine();
            Console.WriteLine(maze.SolveMaze());
            Console.WriteLine();
            maze.DisplayMaze();
            Console.ReadLine();
        }
        public IHttpActionResult Post([FromBody] string map)
        {
            try
            {
                var lines = (map ?? string.Empty).Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
                if (lines.Length < 1)
                {
                    return(BadRequest("Invalid maze"));
                }

                var maze       = new Solver.Maze(lines);
                var solver     = new Solver.MazeSolver();
                var solvedMaze = solver.Walk(maze);
                return(solvedMaze == null
                    ? Ok(new { steps = solver.Steps, solution = "No solution found" })
                    : Ok(new { steps = solver.Steps, solution = solvedMaze.ToString() }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
示例#12
0
        public void ChangeMazeStartPosition()
        {
            MazeSolver.MazeSolver mazeRun = new MazeSolver.MazeSolver(new List <ILogger> {
                new FakeLogger()
            }, data1)
            {
                StartPt = new Point(1, 1)
            };

            Assert.Equal(new Point(1, 1), mazeRun.StartPt);

            mazeRun.StartPt = new Point(1, 2);

            Assert.Equal(new Point(1, 2), mazeRun.StartPt);

            mazeRun.StartPt = new Point(2, 1);

            Assert.Equal(new Point(2, 1), mazeRun.StartPt);

            mazeRun.StartPt = new Point(2, 2);

            Assert.Equal(new Point(2, 2), mazeRun.StartPt);
        }