Example #1
0
        public SolutionDetails <Direction> SolveMaze(string name, int algo)
        {
            SolutionDetails <Direction>    sol_det;
            Searcher <Position, Direction> s;

            if (Sol.TryGetValue(name, out sol_det))
            {
                return(sol_det);
            }
            Maze maze;

            Mazes.TryGetValue(name, out maze);
            if (maze == null)
            {
                return(null);
            }
            if (algo == BFS)
            {
                s = new BestFS();
            }
            else
            {
                s = new DFS();
            }

            sol_det = s.search(new SearchableMaze(maze));
            //sol_det = new SolutionDetails<Direction>(s.search(new SearchableMaze(maze)), s.getNumberOfNodesEvaluated());
            Sol.Add(name, sol_det);
            return(sol_det);
        }
Example #2
0
        private static void SzukanieMiastaBestFS()
        {
            int         i = 1, pocz, kon;
            MapServices mapa = new MapServices();

            Console.WriteLine("Lista miast: ");
            foreach (var item in mapa.NodeMap)
            {
                Console.WriteLine(i.ToString() + " " + item.Name);
                i++;
            }

            Console.WriteLine("Wybierz miasto początkowe: ");
            pocz = int.Parse(Console.ReadLine());
            Node poczatek = mapa.NodeMap.ElementAt(pocz - 1);

            Console.Write("\nWybierz miasto końcowe: ");
            kon = int.Parse(Console.ReadLine());
            Node koniec = mapa.NodeMap.ElementAt(kon - 1);

            BestFS a = new BestFS(mapa.NodeMap.Find(m => m.Name == koniec.Name), mapa.NodeMap.Find(m => m.Name == poczatek.Name));

            a.Expand(poczatek);
            a.Print();
        }