Beispiel #1
0
        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();
        }
Beispiel #2
0
        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);
        }