public void TraceRandomBoard() { var gen = new MineSweeperBoardGenerator(36); var board = gen.GetBoard(); TraceBoard(board); }
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(); }
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(); } }
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}"); } } }
public void BoardGeneratorConstructs() { var gen = new MineSweeperBoardGenerator(16); }