public MazeForm(int mazeSize) { InitializeComponent(); float nudInset = 0; _grid = new Grid(MazeSize, MazeSize); pbMaze.Image = _grid.ToImg(GridSize, (float)nudInset); nudRNGSeed = new Random(); MazeSize = mazeSize; tsmiPickStart.Click += TsmiPickStartOnClick; tsmiPickEnd.Click += TsmiPickEndOnClick; pbMask.Image = null; cbAlgorithm.SelectedItem = cbAlgorithm.Items[0]; if (cbAlgorithm.SelectedItem != null) { Image img; var grid = new Grid(MazeSize, MazeSize); if (pbMask.Image != null) { var mask = Mask.FromBitmap((Bitmap)pbMask.Image); grid = new MaskedGrid(mask); } if (!CreateSelectedMaze(grid)) { return; } img = grid.ToImg(GridSize, (float)nudInset); pbMaze.Image = img; } }
public static MaskedGrid CreateGrid(Mask mask) { if (mask == null) { return(null); } var grid = new MaskedGrid(mask, mask.Rows, mask.Columns); grid.Init(); return(grid); }
static void Main(string[] args) { string file = (args.Length == 1) ? file = args[0] : Path.Combine(Environment.CurrentDirectory, "mask.txt"); var mask = Mask.ReadFromTextFile(file); IGrid grid = new MaskedGrid(mask); new RecursiveBacktracker().Run(ref grid); Console.WriteLine(grid.ToString(false)); Console.ReadKey(); }
static void Main(string[] args) { var mask = new Mask(5, 5); mask[0, 0] = false; mask[2, 2] = false; mask[4, 4] = false; IGrid grid = new MaskedGrid(mask); new RecursiveBacktracker().Run(ref grid); Console.WriteLine(grid.ToString(false)); Console.ReadKey(); }
private static void MaskedMazes() { var mask = new Mask(5, 5); mask[0, 0] = false; mask[2, 2] = false; mask[4, 4] = false; var grid = new MaskedGrid(mask); RecursiveBacktracker.Maze(grid, 0); Console.WriteLine(grid); var maskStr = new List <string> { "X........X", "....XX....", "...XXXX...", "....XX....", "X........X", "X........X", "....XX....", "...XXXX...", "....XX....", "X........X" }; mask = Mask.FromString(maskStr); grid = new MaskedGrid(mask); RecursiveBacktracker.Maze(grid, 0); Console.WriteLine(grid); var img = grid.ToImg(); img.Save("masked.png"); Process.Start("masked.png"); mask = Mask.FromImageFile("maze_text.png"); grid = new MaskedGrid(mask); RecursiveBacktracker.Maze(grid, 0); img = grid.ToImg(); img.Save("masked2.png"); Process.Start("masked2.png"); }
private void DrawMaze(object sender, EventArgs e) { cbAlgorithm.SelectedItem = cbAlgorithm.Items[0]; if (cbAlgorithm.SelectedItem != null) { Image img; var grid = new Grid(MazeSize, MazeSize); if (pbMask.Image != null) { var mask = Mask.FromBitmap((Bitmap)pbMask.Image); grid = new MaskedGrid(mask); } if (!CreateSelectedMaze(grid)) { return; } img = grid.ToImg(GridSize, (float)nudInset.Value); pbMaze.Image = img; } }
private void DrawMaze(object sender, EventArgs e) { if (cbAlgorithm.SelectedItem != null) { Image img; var grid = new Grid(MazeSize, MazeSize); if (pbMask.Image != null) { var mask = Mask.FromBitmap((Bitmap)pbMask.Image); grid = new MaskedGrid(mask); } else if (_mode == MazeStyle.Polar) { grid = new PolarGrid(MazeSize); } else if (_mode == MazeStyle.Hex) { grid = new HexGrid(MazeSize, MazeSize * 3 / 2); } else if (_mode == MazeStyle.Triangle) { grid = new TriangleGrid(MazeSize, MazeSize * 2); } else if (_mode == MazeStyle.Upsilon) { grid = new UpsilonGrid(MazeSize, MazeSize); } else if (_mode == MazeStyle.Weave) { grid = new WeaveGrid(MazeSize, MazeSize); } if (!CreateSelectedMaze(grid)) { return; } img = grid.ToImg(GridSize, (float)nudInset.Value); pbMaze.Image = img; } }