Exemple #1
0
        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;
            }
        }
Exemple #2
0
        public static MaskedGrid CreateGrid(Mask mask)
        {
            if (mask == null)
            {
                return(null);
            }

            var grid = new MaskedGrid(mask, mask.Rows, mask.Columns);

            grid.Init();

            return(grid);
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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();
        }
Exemple #5
0
        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");
        }
Exemple #6
0
 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;
     }
 }
Exemple #7
0
 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;
     }
 }