Esempio n. 1
0
        public Field[,] GenerateGameBoard(int dimX, int dimY)
        {
            dimX = AdjustDimension(dimX);
            dimY = AdjustDimension(dimY);

            var field = new Field[dimX, dimY];

            FillCovered(field);
            int rand          = numberGenerator.NextInt(LowerBound, UpperBound);
            int numberOfMines = (int)((dimX * dimY) * (rand / 100.0));

            FillMines(field, numberOfMines);
            FillNumbers(field);

            return(field);
        }
Esempio n. 2
0
        public void GivenGameBoard_ContainsValidPercentOfMines(int dimX, int dimY, int percent)
        {
            IRandomInteger randomGenerator = A.Fake <IRandomInteger>();

            A.CallTo(() => randomGenerator.NextInt(20, 60)).Returns(percent);
            IGameBoardCreator creator = new GameBoardCreator(randomGenerator);
            var board         = creator.GenerateGameBoard(dimX, dimY);
            int mineCount     = 0;
            int expectedCount = (int)((dimX * dimY) * (percent / 100.0));

            for (int i = 0; i < dimX; i++)
            {
                for (int j = 0; j < dimY; j++)
                {
                    if (board[i, j].HasFlag(Field.Mine))
                    {
                        mineCount++;
                    }
                }
            }

            Assert.That(mineCount == expectedCount, $"{mineCount} neq {expectedCount}");
        }