コード例 #1
0
        private void btnColorize_Click(object sender, EventArgs e)
        {
            if (cbAlgorithm.SelectedItem != null)
            {
                IColoredGrid colorGrid = new ColoredGrid(MazeSize, MazeSize);
                if (pbMask.Image != null)
                {
                    var mask = maze.Core.Mask.FromBitmap((Bitmap)pbMask.Image);
                    colorGrid = new MaskedColoredGrid(mask);
                }

                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
                {
                    start = colorGrid[colorGrid.Rows / 2, colorGrid.Columns / 2];
                }
                colorGrid.Distances = start.Distances;

                colorGrid.BackColor = pbColor.BackColor;

                pbMaze.Image = colorGrid.ToImg(GridSize, (float)nudInset.Value);
            }
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: maxymnaumchyk/BSD
        private void button3_Click(object sender, EventArgs e)
        {
            if (cbAlgorithm.SelectedItem != null)
            {
                var colorGrid = new ColoredGrid(10, 10);
                if ((string)cbAlgorithm.SelectedItem == "BinaryTree")
                {
                    BinaryTree.Maze(colorGrid, (int)numericUpDown1.Value);
                }
                else if ((string)cbAlgorithm.SelectedItem == "Sidewinder")
                {
                    Sidewinder.Maze(colorGrid, (int)numericUpDown1.Value);
                }

                var start     = colorGrid[0, 0];
                var distances = start.Distances;
                var(newStart, distance) = distances.Max;
                start               = newStart;
                distances           = start.Distances;
                var(end, distance2) = distances.Max;

                colorGrid.Distances = start.Distances;
                colorGrid.BackColor = pbColor.BackColor;

                pB.Image = colorGrid.ToPn(start, end);
            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: moggoly/Mazes
        private ColoredGrid GenerateMaze(int rows, int columns)
        {
            var grid = new ColoredGrid(rows, columns);
            var maze = RecursiveBackTracker.GenerateMaze(grid);

            return(maze);
        }
コード例 #4
0
        public void TestBinaryTreeColoredGrid()
        {
            var coloredGrid = new ColoredGrid(25, 25);

            Sidewinder.On(coloredGrid);
            coloredGrid.Distances = coloredGrid.GetCenterCell().Distances;
            coloredGrid.ToBitmap().Save("sidewinder-colored.png");
        }
コード例 #5
0
        public void TestGrowingTreeColored()
        {
            var coloredGrid = new ColoredGrid(25, 25);

            GrowingTree.On(coloredGrid);
            coloredGrid.Distances = coloredGrid.GetCenterCell().Distances;
            coloredGrid.ToBitmap().Save("growingtree-colored.png");
        }
コード例 #6
0
        public void TestHuntAndKillColored()
        {
            var coloredGrid = new ColoredGrid(25, 25);

            HuntAndKill.On(coloredGrid);
            coloredGrid.Distances = coloredGrid.GetCenterCell().Distances;
            coloredGrid.ToBitmap().Save("huntandkill-colored.png");
        }
コード例 #7
0
        public void TestRecursiveBacktrackerColored()
        {
            var coloredGrid = new ColoredGrid(25, 25);

            RecursiveBacktracker.On(coloredGrid);
            coloredGrid.Distances = coloredGrid.GetCenterCell().Distances;
            coloredGrid.ToBitmap().Save("recursivebacktracker-colored.png");
        }
コード例 #8
0
        public void TestRecursiveDivisionColoredGrid()
        {
            var coloredGrid = new ColoredGrid(25, 25);

            RecursiveDivision.On(coloredGrid);
            coloredGrid.Distances = coloredGrid.GetCenterCell().Distances;
            coloredGrid.ToBitmap().Save("recursivedivision-colored.png");
        }
コード例 #9
0
        public void TestAldousBroderColored()
        {
            var coloredGrid = new ColoredGrid(25, 25);

            AldousBroder.On(coloredGrid);
            coloredGrid.Distances = coloredGrid.GetCenterCell().Distances;
            coloredGrid.ToBitmap().Save("aldousbroder-colored.png");
        }
コード例 #10
0
        public void TestWilsonsColoredGrid()
        {
            var coloredGrid = new ColoredGrid(25, 25);

            Wilsons.On(coloredGrid);
            coloredGrid.Distances = coloredGrid.GetCenterCell().Distances;
            coloredGrid.ToBitmap().Save("wilsons-colored.png");
        }
コード例 #11
0
ファイル: Program.cs プロジェクト: moggoly/Mazes
        private ColoredGrid ShortestPath(ColoredGrid maze)
        {
            var start     = maze.GetCenterCell();
            var distances = start.Distances();

            maze.Distances = distances;
            //maze.Distances = distances.PathTo(maze.GetCell(maze.Rows - 1, maze.Columns - 1));
            return(maze);
        }
コード例 #12
0
ファイル: Program.cs プロジェクト: moggoly/Mazes
        private ColoredGrid LongestPath(ColoredGrid maze)
        {
            var start     = maze.GetCell(0, 0);
            var distances = start.Distances();

            var(newStart, _) = distances.Max();

            var newDistances = newStart.Distances();

            var(goal, _) = newDistances.Max();

            maze.Distances = newDistances.PathTo(goal);

            return(maze);
        }
コード例 #13
0
 public void TestInit()
 {
     grid = new ColoredGrid(5, 5);
 }