Esempio n. 1
0
        public void TraceRandomBoard()
        {
            var gen   = new MineSweeperBoardGenerator(36);
            var board = gen.GetBoard();

            TraceBoard(board);
        }
Esempio n. 2
0
        public void AdjacentValuesAreCorrect()
        {
            var smallBombGen   = new MineSweeperBoardGenerator(36, 1);
            var smallBombBoard = smallBombGen.GetBoard();

            TraceBoard(smallBombBoard);

            foreach (var tile in smallBombBoard)
            {
                if (tile.AdjacentTileCount > 1)
                {
                    Assert.Fail();
                }
            }

            var manyBombGen   = new MineSweeperBoardGenerator(4, 3);
            var manyBombBoard = manyBombGen.GetBoard();

            TraceBoard(manyBombBoard);

            foreach (var tile in manyBombBoard)
            {
                if (tile.IsEmpty && tile.AdjacentTileCount < 3)
                {
                    Assert.Fail();
                }
            }
        }
        public void Start(BoardSize size)
        {
            var tileCount = GetTileCountFromBoardSize(size);
            var bombCount = tileCount / 6;
            var gen       = new MineSweeperBoardGenerator(tileCount, bombCount);

            this.BoardTiles = gen.GetBoard();
        }
Esempio n. 4
0
        public void FindAdjacentDoesNotAllowNegativeStartingPoints()
        {
            var gen    = new MineSweeperBoardGenerator(36, 6);
            var board  = gen.GetBoard();
            var helper = new MineSweeperBoardHelper();

            var adjacentTileCount = helper.FindAdjacentTilePositions(board, -1, -1).Count();

            if (adjacentTileCount != 0)
            {
                Assert.Fail();
            }
        }
Esempio n. 5
0
        public void BombValuesAreCorrect()
        {
            var random = new Random(); // creating here since creating randoms during iteration or recursion is a bad idea

            for (int i = 0; i < 20; i++)
            {
                int boardSize = GetRandomBoardSize(random);
                int mineCount = random.Next(0, boardSize);
                var boardGen  = new MineSweeperBoardGenerator(boardSize, mineCount);
                var board     = boardGen.GetBoard();

                var actualMineCount = board.Where(x => !x.IsEmpty).Count();

                if (actualMineCount != mineCount)
                {
                    Assert.Fail($"Mine count mismatch.\nExpected: {mineCount}\nActual: {actualMineCount}");
                }
            }
        }
Esempio n. 6
0
 public void BoardGeneratorConstructs()
 {
     var gen = new MineSweeperBoardGenerator(16);
 }