static void Main(string[] args) { MazeConfigReader mazeReader = new MazeConfigReader(args[0]); var dimensions = mazeReader.ReadMazeDimensions(); var startPosition = mazeReader.ReadStartPosition(); var targetPositions = mazeReader.ReadTargetPositions(); var wallPositions = mazeReader.ReadWallPositions(); Maze maze = new Maze(dimensions, wallPositions, targetPositions); Position position = new Position(); MazeSearch mazeSearch = new MazeSearch(maze); if (args[1].Equals("breadthfirstsearch", StringComparison.InvariantCultureIgnoreCase)) { BreadthFirstSearch bfs = new BreadthFirstSearch(mazeSearch); bfs.Search(new State <Position>(null, null, new Position(startPosition.ElementAt(0), startPosition.ElementAt(1), "Initial"))); } else if (args[1].Equals("depthfirstsearch", StringComparison.InvariantCultureIgnoreCase)) { DepthFirstSearch dfs = new DepthFirstSearch(mazeSearch); dfs.Search(new State <Position>(null, null, new Position(startPosition.ElementAt(0), startPosition.ElementAt(1), "Initial"))); } else if (args[1].Equals("uniformcostsearch", StringComparison.InvariantCultureIgnoreCase)) { UniformCostSearch ucs = new UniformCostSearch(mazeSearch); ucs.Search(new State <Position>(null, null, new Position(startPosition.ElementAt(0), startPosition.ElementAt(1), "Initial"), 0)); } // else // { // ... unknown search method. print an error. // } //maze.setCell(0, 1, Maze.Cell.Target); //maze.setCell(7, 0, Maze.Cell.Target); //maze.setCell(10, 3, Maze.Cell.Target); var view = new MazeView(maze, position); //view.Display(); Console.ReadLine(); }
static void Main(string[] args) { string link = args[0]; Map map = new Map(); Agent robot; map.Data.Link = link; map.GenerateMap(); robot = new Agent(map); Algorithm dfs = new DepthFirstSearch(map); Algorithm bfs = new BreadthFirstSearch(map); Algorithm gbfs = new GreedyBestFirstSearch(map); Algorithm astart = new AStar(map); Algorithm cus1 = new DijkstraSearch(map); Algorithm cus2 = new CUS2(map); Algorithm as1 = new AstarWithMoveDirectionCost(map); SwinGame.OpenGraphicsWindow("RobotNavigation", map.MapLengthX * 100, map.MapLengthY * 100); SwinGame.ClearScreen(Color.White); while (false == SwinGame.WindowCloseRequested()) { SwinGame.ProcessEvents(); switch (args[1].ToLower()) { case "dfs": Console.WriteLine(dfs.Search(robot)); break; case "bfs": Console.WriteLine(bfs.Search(robot)); break; case "gbfs": Console.WriteLine(gbfs.Search(robot)); break; case "as": Console.WriteLine(astart.Search(robot)); break; case "as1": Console.WriteLine(as1.Search(robot)); break; case "cus1": Console.WriteLine(cus1.Search(robot)); break; case "cus2": Console.WriteLine(cus2.Search(robot)); break; default: Console.WriteLine("You haven't chose the method. Please choose one!"); break; } break; } Console.ReadLine(); }