예제 #1
0
        public MazeGenerator(MazeGenParams mazeGenParams)
        {
            _mazeGenParams = mazeGenParams;
            _openedCells   = new List <IntVector>();
            _maze          = new byte[mazeGenParams.XSize * 2 + 1, mazeGenParams.YSize * 2 + 1];

            // Make unbreakable walls
            for (var i = 0; i < MazeHeight; i++)
            {
                for (var j = 0; j < MazeWidth; j++)
                {
                    if (j == 0 || i == 0 || j == MazeWidth - 1 || i == MazeHeight - 1)
                    {
                        _maze[j, i] = UnbreakableWall;
                    }
                }
            }

            _rootedMazeSize = (int)Math.Sqrt(mazeGenParams.XSize * mazeGenParams.YSize);
        }
예제 #2
0
 private static void Main()
 {
     var mazeGenParams = new MazeGenParams(20, 20, GeneratorType.Random, 30);
     var mazeGen       = new MazeGenerator(mazeGenParams);
     var maze          = mazeGen.GenerateMaze();
 }