public void After13HitShots_GameStopsPlaying() { //Battleship is Vertical at (1, 5) //First Destroyer is Horizontal at (4, 2) //Second Destroyer is Vertical at (8, 0) var random = new Mock <Random>(); random.SetupSequence(x => x.Next(2)).Returns(0) .Returns(1) .Returns(0); random.SetupSequence(x => x.Next(10)).Returns(1).Returns(2).Returns(8); random.Setup(x => x.Next(6)).Returns(5); random.SetupSequence(x => x.Next(7)).Returns(4).Returns(0); var gameInitializer = new GameInitializer(random.Object); var game = gameInitializer.CreateGame(); string[] listOfHitShots = { "B5", "B6", "B7", "B8", "B9", "E2", "F2", "G2", "H2", "I0", "I1", "I2", "I3" }; foreach (var shotCoordinates in listOfHitShots) { Assert.True(game.ShouldKeepPlaying()); var shot = game.Shoot(shotCoordinates); Assert.NotNull(shot.HitShip); } Assert.False(game.ShouldKeepPlaying()); }
public void AfterCallingCreateGame_GameIsInitialized() { var random = new Random(); var initializer = new GameInitializer(random); var game = initializer.CreateGame(); Assert.NotNull(game); Assert.NotNull(game.Battlefield); }
static void Main(string[] args) { Random random = new Random(); var gameInitializer = new GameInitializer(random); var game = gameInitializer.CreateGame(); UIMessages.OpeningMessage(); Console.ReadLine(); var battlefieldPrinter = new UIBattlefieldPrinter(game.Battlefield); while (game.ShouldKeepPlaying()) { ExecuteGameLoop(game, battlefieldPrinter); } UIMessages.GameEndMessage(); }