public static void CompareSolvers() { DFSMazeGenerator mazeGen = new DFSMazeGenerator(); Maze maze = mazeGen.Generate(10, 10); SearchableMaze sm = new SearchableMaze(maze); Console.WriteLine(maze); BFSSearcher bfs = new BFSSearcher(); DFSSearcher dfs = new DFSSearcher(); Solution BFSSolution = bfs.search(sm); Solution DFSSolution = dfs.search(sm); // Console.WriteLine($"Nodes: {BFSNodes}"); // Console.WriteLine($"Nodes: {DFSNodes}"); int BFSNodes = bfs.getNumberOfNodesEvaluated(); int DFSNodes = dfs.getNumberOfNodesEvaluated(); }
public override string Execute(string[] args, Socket client = null) { string name = args[0]; int algorithm = int.Parse(args[1]); Maze m = model.GetMazeByName(name); if (m == null) { return("No Such Maze"); } Solution sol = model.GetMazeSolution(name); if (sol == null) { ISearcher searcher; SearchableMaze sm = new SearchableMaze(m); if (algorithm == 1) { searcher = new DFSSearcher(); } else if (algorithm == 0) { searcher = new BFSSearcher(); } else { return(null); } sol = model.search(sm, searcher); sol.Name = name; model.AddMazeSolution(name, sol); } string jsonSol = sol.toJSON(); SendMessageToClient(jsonSol, client); return(jsonSol); }