public void Play() { while (BoardIsNotRevealed()) { var newLocation = CreateLocationBasedOnInput(); RevealTheSquareIfLocationIsOnBoard(newLocation); if (WinLoseChecker.IsLosingConditionWhenOneMineIsRevealed(Board)) { _output.Write(GameInstruction.GameOverMessage); Board.RevealAllSquares(); State = GameState.Lose; _output.Write(GameInstruction.ResultMessage + State); } else if (WinLoseChecker.IsWinningConditionWhenAllHintsAreRevealed(Board)) { _output.Write(GameInstruction.GameOverMessage); Board.RevealAllSquares(); State = GameState.Win; _output.Write(GameInstruction.ResultMessage + State); } _output.Write(GameInstruction.DisplayCurrentBoardMessage); DisplayBoard(); } }
public void IsLosingConditionShould_ReturnFalse_WhenNoMineOnBoardIsRevealed() { var board = Board.CreateEmptyBoard(2); var mineGenerator = new MockMinesGenerator(); mineGenerator.PlaceMines(2, board); var result = WinLoseChecker.IsLosingConditionWhenOneMineIsRevealed(board); Assert.False(result); }
private void Awake() { if (instance == null) { instance = this; } else if (instance != this) { Debug.LogError("Tried to create another instance of " + GetType() + ". Destroying."); Destroy(gameObject); } }
public void IsLosingConditionShould_ReturnTrue_WhenOneMineOnBoardAreRevealed() { var board = Board.CreateEmptyBoard(2); var mineGenerator = new MockMinesGenerator(); mineGenerator.PlaceMines(2, board); var topLeft = new Location(0, 0); var mineOne = board.GetSquare(topLeft); mineOne.Reveal(); var result = WinLoseChecker.IsLosingConditionWhenOneMineIsRevealed(board); Assert.True(result); }
public void IsWinningConditionShould_ReturnFalse_WhenOneHintsOnBoardIsRevealed() { var board = Board.CreateEmptyBoard(2); var mineGenerator = new MockMinesGenerator(); mineGenerator.PlaceMines(2, board); var bottomLeft = new Location(1, 0); var hintOne = board.GetSquare(bottomLeft); hintOne.Reveal(); var result = WinLoseChecker.IsWinningConditionWhenAllHintsAreRevealed(board); Assert.False(result); }