private static void ColorizeThetaMazes() { var grid = new ColoredPolarGrid(100); BinaryTree.Maze(grid); var start = grid[0, 0]; grid.Distances = start.Distances; var img = grid.ToImg(25); img.Save("binaryTheta.png"); grid = new ColoredPolarGrid(100); Sidewinder.Maze(grid); start = grid[0, 0]; grid.Distances = start.Distances; img = grid.ToImg(25); img.Save("sidewinderTheta.png"); grid = new ColoredPolarGrid(100); AldousBroder.Maze(grid); start = grid[0, 0]; grid.Distances = start.Distances; img = grid.ToImg(25); img.Save("aldousBroderTheta.png"); grid = new ColoredPolarGrid(100); HuntAndKill.Maze(grid); start = grid[0, 0]; grid.Distances = start.Distances; img = grid.ToImg(25); img.Save("huntAndKillTheta.png"); grid = new ColoredPolarGrid(100); RecursiveBacktracker.Maze(grid, startAt: null); start = grid[0, 0]; grid.Distances = start.Distances; img = grid.ToImg(25); img.Save("recursiveBacktrackerTheta.png"); grid = new ColoredPolarGrid(100); Wilsons.Maze(grid); start = grid[0, 0]; grid.Distances = start.Distances; img = grid.ToImg(25); img.Save("wilsonsTheta.png"); Process.Start("binaryTheta.png"); Process.Start("sidewinderTheta.png"); Process.Start("aldousBroderTheta.png"); Process.Start("huntAndKillTheta.png"); Process.Start("recursiveBacktrackerTheta.png"); Process.Start("wilsonsTheta.png"); }
private void btnColorize_Click(object sender, EventArgs e) { if (cbAlgorithm.SelectedItem != null) { IColoredGrid colorGrid = new ColoredGrid(MazeSize, MazeSize); if (pbMask.Image != null) { var mask = Mask.FromBitmap((Bitmap)pbMask.Image); colorGrid = new MaskedColoredGrid(mask); } else if (_mode == MazeStyle.Polar) { colorGrid = new ColoredPolarGrid(MazeSize); } else if (_mode == MazeStyle.Hex) { colorGrid = new ColoredHexGrid(MazeSize, MazeSize * 3 / 2); } else if (_mode == MazeStyle.Triangle) { colorGrid = new ColoredTriangleGrid(MazeSize, MazeSize * 2); } else if (_mode == MazeStyle.Upsilon) { colorGrid = new ColoredUpsilonGrid(MazeSize, MazeSize); } if (!CreateSelectedMaze(colorGrid)) { return; } Cell start; if (_startPoint.HasValue) { start = colorGrid[_startPoint.Value.Y, _startPoint.Value.X]; } else if (colorGrid is MaskedColoredGrid) { start = colorGrid.RandomCell(); } else if (_mode == MazeStyle.Polar) { start = colorGrid[0, 0]; } else { start = colorGrid[colorGrid.Rows / 2, colorGrid.Columns / 2]; } colorGrid.Distances = start.Distances; colorGrid.BackColor = pbColor.BackColor; pbMaze.Image = colorGrid.ToImg(GridSize, (float)nudInset.Value); } }