public void Generate_When5x5_GeneratesMazeWith25Cells() { var grid = new Grid(5, 5); SideWinder.Generate(grid); Assert.AreEqual(25, grid.Cells().Count()); }
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(); }
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); }
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("?")); }
private static void GenerateGrid(Algorithm algorithm, Grid grid) { switch (algorithm) { case Algorithm.BinaryTree: BinaryTree.Generate(grid); break; case Algorithm.Sidewinder: SideWinder.Generate(grid); break; } }
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); }
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); }