コード例 #1
0
        public void Run()
        {
            BreadthFirstSearch bfs = new BreadthFirstSearch();
            DepthFirstSearch   dfs = new DepthFirstSearch();

            _worldAgent.AgentSearchMethod = dfs;
            _worldAgent.Search(_world);
            _world.PrintPath(_worldAgent.AgentSearchMethod.CompletedSearchPath);
            Console.WriteLine("SUCCESS!!");
        }
コード例 #2
0
        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();
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: hungpple/RobotNavigation
        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();
        }