Exemple #1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="maze3d"></param>
        public SearchableMaze3D(AMaze maze3d)
        {
            m_maze3d = (Maze3d)maze3d;
            Position3D statrPosition = (Position3D)maze3d.getStartPosition();

            m_initialState = new MazeState(null, statrPosition.Col, statrPosition.Row, statrPosition.Level);
            Position3D goalPosition = (Position3D)maze3d.getGoalPosition();

            m_goalState = new MazeState(null, goalPosition.Col, goalPosition.Row, goalPosition.Level);
        }
Exemple #2
0
        private static void testMaze3dGenerator(IMazeGenerator generator)
        {
            int[] size3D = { 3, 13, 17 }; // (z,y,x)
            Console.WriteLine(generator.geasureAlgorithmTime(size3D));
            AMaze     maze  = generator.generate(size3D);
            APosition start = maze.getStartPosition();

            start.print();
            maze.getGoalPosition().print();
            maze.print();
        }
Exemple #3
0
        private static void testMeze3dGenerator(MyMaze3dGenerator mg)
        {
            ArrayList s = new ArrayList();

            s.Add(20);
            s.Add(20);
            s.Add(4);

            Console.WriteLine(mg.MeasureAlgorithmTime(s));
            AMaze    maze  = mg.generate(s);
            Position start = maze.getStartPosition();

            start.print();
            maze.getGoalPosition().print();
            maze.Print();
            byte[]      dar  = (maze as Maze3d).toByteArray();
            Maze3d      hara = new Maze3d(dar);
            ICompressor car  = new MyMaze3DCompressor();

            byte[] hara1 = car.compress(dar);
            byte[] hara2 = car.decompress(hara1);
            Maze3d hara3 = new Maze3d(hara2);

            hara3.Print();


            /*using (FileStream fileOutStream = new FileStream("1.maze", FileMode.Create))
             * {
             *  using (Stream outStream = new MyCompressorStream(fileOutStream, 1))
             *  {
             *      outStream.Write((maze as Maze3d).toByteArray(),0,1);
             *      outStream.Flush();
             *  }
             * }
             * byte[] mazeBytes;
             * using (FileStream fileInStream = new FileStream("1.maze", FileMode.Open))
             * {
             *  using (Stream inStream = new MyCompressorStream(fileInStream,1))
             *  {
             *      mazeBytes = new byte[(maze as Maze3d).toByteArray().Count()];
             *      input.read(b);
             *  }
             * }
             * Maze3d loadedMaze = new Maze3d(mazeBytes);
             * System.out.println(loaded.equals(maze));*/



            Console.ReadKey();
        }
Exemple #4
0
        private static void testMaze2dGenerator(SimpleMaze2dGenerator mg)
        {
            ArrayList sizes = new ArrayList();

            sizes.Add(30);
            sizes.Add(30);

            Console.WriteLine(mg.MeasureAlgorithmTime(sizes));
            AMaze    maze  = mg.generate(sizes);
            Position start = maze.getStartPosition();

            start.print();
            maze.getGoalPosition().print();
            maze.Print();

            Console.ReadKey();
        }
Exemple #5
0
        public void GenerateMaze(string mazename, int x, int y, int z)
        {
            if ((m_controller as MyController).mazes.ContainsKey(mazename))
            {
                (m_controller as MyController).M_view.Output("maze name already exists");
                return;
            }
            ArrayList list = new ArrayList();

            list.Add(x);
            list.Add(y);
            list.Add(z);
            MyMaze3dGenerator mg   = new MyMaze3dGenerator();
            AMaze             maze = mg.generate(list);

            (m_controller as MyController).mazes.Add(mazename, maze);
            (m_controller as MyController).M_view.Output("maze " + mazename + " is ready");
        }
Exemple #6
0
        private static void testSearchAlgorithms()
        {
            ArrayList s = new ArrayList();

            s.Add(5);
            s.Add(5);
            s.Add(4);
            MyMaze3dGenerator mg   = new MyMaze3dGenerator();
            AMaze             maze = mg.generate(s);

            maze.Print();
            Console.WriteLine("DFS solution path:");
            SearchableMaze3d sm    = new SearchableMaze3d((maze as Maze3d));
            DepthFirstSearch ds    = new DepthFirstSearch();
            Solution         dssol = ds.Solve(sm);

            dssol.PrintSolution();
            Console.WriteLine("-------------------------------------------------------");
            Console.WriteLine("for BFS solution press any key");
            Console.ReadKey();
            Console.WriteLine("BFS solution path:");
            BreadthFirstSearch bs    = new BreadthFirstSearch();
            Solution           bssol = bs.Solve(sm);

            bssol.PrintSolution();
            Console.WriteLine("-------------------------------------------------------");
            Console.WriteLine("for further information about DFS solution press any key");
            Console.ReadKey();
            Console.WriteLine("num of nodes developed in DFS: " + ds.getNumberOfNodes());
            Console.WriteLine("time it took to find solution(ms) in DFS: " + ds.GetSolvingTime());
            Console.WriteLine();
            Console.WriteLine("for further information about BFS solution press any key");
            Console.ReadKey();
            Console.WriteLine();
            Console.WriteLine("num of nodes developed in BFS: " + bs.getNumberOfNodes());
            Console.WriteLine("time it took to find solution(ms) in BFS: " + bs.GetSolvingTime());
        }