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); }
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(); }