Example #1
0
        /// <summary>
        /// Generates a maze with the given name, in the given size.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <param name="row">The row.</param>
        /// <param name="col">The col.</param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentException">name already taken, re-enter a command</exception>
        public Maze Generate(string name, int row, int col)
        {
            if (dataBase.IsMazeExists(name))
            {
                throw new ArgumentException("name already taken");
            }
            MazeGeneratorLib.DFSMazeGenerator generator =
                new MazeGeneratorLib.DFSMazeGenerator();
            Maze maze = generator.Generate(row, col);

            maze.Name = name;
            dataBase.AddMaze(maze);
            return(maze);
        }
Example #2
0
        /// <summary>
        /// Adds the game.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <param name="r">The r.</param>
        /// <param name="c">The c.</param>
        /// <param name="client">The client.</param>
        /// <exception cref="System.ArgumentException">name already taken, re-enter a command</exception>
        public void AddGame(string name, int r, int c, string clientId)
        {
            if (dataBase.IsGameExists(name))
            {
                throw new ArgumentException("name already taken");
            }
            MazeGeneratorLib.DFSMazeGenerator generator =
                new MazeGeneratorLib.DFSMazeGenerator();
            Maze maze = generator.Generate(r, c);

            maze.Name = name;
            MazeGame game = new MazeGame(maze, clientId);

            dataBase.AddGame(name, game);
        }
Example #3
0
        public static void CompareSolvers()
        {
            MazeGeneratorLib.DFSMazeGenerator generator = new MazeGeneratorLib.DFSMazeGenerator();
            MazeLib.Maze maze = generator.Generate(10, 10);
            // Console.WriteLine(maze.ToString());
            string a = maze.ToJSON();

            Console.WriteLine(a);
            MazeAdapter adapter = new MazeAdapter(maze);

            SearchAlgorithmsLib.Solution <MazeLib.Position> solBFS = new SearchAlgorithmsLib.Solution <MazeLib.Position>();
            SearchAlgorithmsLib.BFS <MazeLib.Position>      bfs    = new SearchAlgorithmsLib.BFS <MazeLib.Position>();
            solBFS = bfs.search(adapter);
            SearchAlgorithmsLib.DFS <MazeLib.Position>      dfs    = new SearchAlgorithmsLib.DFS <MazeLib.Position>();
            SearchAlgorithmsLib.Solution <MazeLib.Position> solDFS = new SearchAlgorithmsLib.Solution <MazeLib.Position>();
            solDFS = dfs.search(adapter);
            Console.WriteLine("in BFS: {0}, in DFS: {1}", bfs.getNumberOfNodesEvaluated(), dfs.getNumberOfNodesEvaluated());

            /* Console.WriteLine("Start: {0}, end: {1}", maze.InitialPos,maze.GoalPos);
             * Console.WriteLine("BFS solution: ");
             * solBFS.printSolution();
             * Console.WriteLine("DFS solution: ");
             * solDFS.printSolution();*/
        }