public MineManager(IsometricGrid3D isometricGrid, int MineCount)
        {
            NumOfMines = MineCount;

            generateMines(isometricGrid);

            mineMap = new TileMap(grid, "0");
        }
Пример #2
0
        public Form1()
        {
            InitializeComponent();

            typeof(Panel).InvokeMember("DoubleBuffered", BindingFlags.SetProperty | BindingFlags.Instance | BindingFlags.NonPublic, null, Canvas, new object[] { true });

            isometricGrid = new IsometricGrid3D(315, 200, 9, 3);

            mineManager = new MineManager(isometricGrid, 10);

            renderers.Add(new Renderer2D(isometricGrid.to2D(0), TileMapTemplates.FilledGrid(isometricGrid.to2D(0)), Properties.Resources.TileBase));
            renderers.Add(new Renderer2D(isometricGrid.to2D(0), mineManager.mineMap, Properties.Resources.Mine));
            renderers.Add(new Renderer2D(isometricGrid.to2D(0), TileMapTemplates.FilledGrid(isometricGrid.to2D(0)), Properties.Resources.GrassTop));

            playerGrid = isometricGrid.to2D(1);
            flagGrid   = isometricGrid.to2D(1);

            flagMap = new FlagMap(flagGrid);

            renderers.Add(flagRenderer());

            colliders = Collision.placeColliders(playerGrid, TileMapTemplates.FilledGrid(playerGrid));
        }
        private void generateMines(IsometricGrid3D isometricGrid)
        {
            int length = isometricGrid.GridSize;

            //int placedMines = 0;

            int x, y;

            grid = new string[length, length];

            // Placing Mines
            for (int i = 0; i < NumOfMines; i++)
            {
                x = rand.Next(0, length);
                y = rand.Next(0, length);

                while (grid[x, y] == "f")
                {
                    x = rand.Next(0, length);
                    y = rand.Next(0, length);
                }

                grid[x, y] = "f";
            }

            // Filling in blanks
            for (int for_y = 0; for_y < length; for_y++)
            {
                for (int for_x = 0; for_x < length; for_x++)
                {
                    if (grid[for_x, for_y] != "f")
                    {
                        grid[for_x, for_y] = "0";
                    }
                }
            }
        }