Esempio n. 1
0
        public void Generate_When5x5_GeneratesMazeWith25Cells()
        {
            var grid = new Grid(5, 5);

            SideWinder.Generate(grid);

            Assert.AreEqual(25, grid.Cells().Count());
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = System.Text.Encoding.UTF8;
            var grid = new Grid(10, 10);

            SideWinder.Generate(grid);
            Console.Write(grid);
            Console.WriteLine();
            Console.ReadKey();
        }
Esempio n. 3
0
        public void ToBitmap_ReturnsBitmap()
        {
            int columns = 25;
            int rows    = 25;
            var grid    = new Grid(rows, columns);

            SideWinder.Generate(grid);

            var bitmap = grid.ToBitmap();

            Assert.IsNotNull(bitmap);
        }
Esempio n. 4
0
        public void ToString_ReturnsString()
        {
            int columns = 25;
            int rows    = 25;
            var grid    = new Grid(rows, columns);

            SideWinder.Generate(grid);

            string gridString = grid.ToString();

            Assert.IsTrue(!String.IsNullOrEmpty(gridString));
            Assert.IsTrue(!gridString.Contains("?"));
        }
Esempio n. 5
0
        private static void GenerateGrid(Algorithm algorithm, Grid grid)
        {
            switch (algorithm)
            {
            case Algorithm.BinaryTree:
                BinaryTree.Generate(grid);
                break;

            case Algorithm.Sidewinder:
                SideWinder.Generate(grid);
                break;
            }
        }
Esempio n. 6
0
    protected override void UpdateAlgorithm()
    {
        switch (algorithmType)
        {
        case Algo.BinaryTree:
            MyGrid = new BinaryTree(width, height);
            break;

        case Algo.SideWinder:
            MyGrid = new SideWinder(width, height);
            break;

        case Algo.AldousBroder:
            MyGrid = new AldousBroder(width, height);
            break;

        case Algo.HuntAndKill:
            MyGrid = new HuntAndKill(width, height);
            break;

        case Algo.RecursiveBacktracker:
            MyGrid = new RecursiveBacktracker(width, height);
            break;

        default:
            throw new ArgumentOutOfRangeException();
        }

        IWallInstantiable wall;

        if (is3d)
        {
            wall = new WallPrefab3d {
                WallPrefab = wallPrefab3d
            }
        }
        ;
        else
        {
            wall = new WallPrefab2d {
                WallPrefab = wallPrefab2d
            }
        };
        GridRenderer.Instance.SetGrid(MyGrid).ParentToTransform(parent).RenderWithPrefab(wall);
        MyGrid.Execute(this);
    }
Esempio n. 7
0
        public void Generate_When5x5_GeneratesMazeWithAtLeastOneLink()
        {
            var grid = new Grid(5, 5);

            SideWinder.Generate(grid);

            bool hasLink = false;

            foreach (Cell cell in grid.Cells())
            {
                if (cell.Links.Any())
                {
                    hasLink = true;
                    break;
                }
            }

            Assert.IsTrue(hasLink);
        }