Exemplo n.º 1
0
        private void GenerateMinesInField(IGameboard gameboard, int minesCount)
        {
            int   size               = gameboard.Size;
            Array mineRadiusValues   = Enum.GetValues(typeof(MineRadius));
            int   mineRadiusMaxIndex = mineRadiusValues.Length - 1;

            List <Position> usedPositions = new List <Position>();

            while (usedPositions.Count < minesCount)
            {
                int      cellX    = this.rand.GetRandom(0, size - 1);
                int      cellY    = this.rand.GetRandom(0, size - 1);
                Position position = new Position(cellX, cellY);
                if (usedPositions.Contains(position))
                {
                    continue;
                }

                usedPositions.Add(position);
                int        cellType     = this.rand.GetRandom(0, mineRadiusMaxIndex);
                MineRadius randomRadius = (MineRadius)mineRadiusValues.GetValue(cellType);
                ICell      currentCell  = new Mine(randomRadius);
                gameboard[cellX, cellY] = currentCell;
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Creates a Mine with mine radius.
 /// </summary>
 /// <param name="radius">Mine explode radius</param>
 public Mine(MineRadius radius)
 {
     this.radius = radius;
 }
Exemplo n.º 3
0
 /// <summary>
 /// Creates a Mine with mine radius.
 /// </summary>
 /// <param name="radius">Mine explode radius</param>
 public Mine(MineRadius radius)
 {
     this.radius = radius;
 }