Ejemplo n.º 1
0
        void solveButton_Click(object sender, EventArgs e)
        {
            SolveForm f = new SolveForm(this.DesktopLocation);

            f.Show();
            this.Hide();
            f.FormClosed += new FormClosedEventHandler((s, args) => {
                this.Show();
                if (method == Method.CANCELED)
                {
                    return;
                }

                switch (method)
                {
                case Method.BFS:
                    BFS bfs = new BFS(gridCopy(grid));
                    bfs.Show();
                    break;

                case Method.DFS:
                    DFS dfs = new DFS(gridCopy(grid));
                    dfs.Show();
                    break;

                case Method.DIJKSTRA:
                    Dijkstra dijkstra = new Dijkstra(gridCopy(grid));
                    dijkstra.Show();
                    break;

                case Method.ASTAR:
                    AStarPathfinding astar = new AStarPathfinding(gridCopy(grid));
                    astar.Show();
                    break;
                }
            });
        }
Ejemplo n.º 2
0
        public void Start()
        {
            while (m_done == false)
            {
                m_timer.Start(); //start
                m_timer.Stop();  //stop
                Console.WriteLine(m_timer.ElapsedMilliseconds);

                m_timer.Reset();

                m_timer.Restart(); //start
                m_timer.Stop();    //stop
                Console.WriteLine(m_timer.ElapsedMilliseconds);

                Console.WriteLine("Choose map, 1 or 2:");
                string input = Console.ReadLine();

                if (input == "1" || input == "2")
                {
                    //initialize the map and the pathfinders
                    m_map.LoadMap(Int32.Parse(input));
                    m_aStar      = new AStarPathfinding(ref m_map);
                    m_bruteForce = new BruteForce(ref m_map);

                    Console.WriteLine("Choose pathfinder, A* (1) or BruteForce (2):");
                    input = Console.ReadLine();

                    if (input == "1")
                    {
                        //use A*

                        m_timer.Reset();
                        for (int i = 0; i < m_numberOfLoops; i++)
                        {
                            m_timer.Start();//start
                            //find path
                            m_aStar.FindPath(m_map.m_start, m_map.m_goal);
                            m_timer.Stop();//stop
                        }

                        //set path
                        m_path = m_aStar.m_pathList;
                    }
                    else if (input == "2")
                    {
                        //use BruteForce

                        Console.WriteLine("Depth First:");
                        m_timer.Reset();
                        for (int i = 0; i < m_numberOfLoops; i++)
                        {
                            m_timer.Start();//start
                            //depth first
                            m_bruteForce.DepthFirst(m_map.m_start, m_map.m_goal);
                            m_timer.Stop();//stop
                        }
                        //set path
                        m_path = m_bruteForce.m_pathList;

                        //print the map
                        PrintMap();

                        //print the timer
                        PrintTimer(m_timer);


                        Console.WriteLine("Breadth First:");
                        m_timer.Reset();
                        for (int i = 0; i < m_numberOfLoops; i++)
                        {
                            m_timer.Start();//start
                            //breadth first
                            m_bruteForce.BreadthFirst(m_map.m_start, m_map.m_goal);
                            m_timer.Stop();//stop
                        }
                        //set path
                        m_path = m_bruteForce.m_pathList;
                    }

                    //print the map
                    PrintMap();

                    //print the timer
                    PrintTimer(m_timer);
                }

                Console.WriteLine();//adding an empty line at the end
            }
        }
 private void Initialize(GameDataContainer _gameDataContainer, DijkstraPathfinding _dijkstraPathfinding, AStarPathfinding _astarPathfinding)
 {
     gameDataContainer   = _gameDataContainer;
     dijkstraPathfinding = _dijkstraPathfinding;
     aStarPathfinding    = _astarPathfinding;
 }