public void BattleShipGame_ShouldAddNewShip_WhenThereIsEnoughSpaceInTheGrid() { // Arrange _grid.SetupGet(x => x.Size).Returns(10); // Act _game.TryAddShip(ShipType.Battleship, 5); // Assert _grid.Verify(x => x.AddShip(It.IsAny <IShip>()), Times.Once); }
static void Main(string[] args) { var gameSize = 10; var grid = new Grid.Grid(gameSize); var game = new BattleShipsGame(grid); game.ShipSunk += ShipShunk; game.MissedShot += MissShot; game.ShipHit += ShipHit; //TODO: read ships size from the configuration file game.TryAddShip(ShipType.Destroyer, 4); game.TryAddShip(ShipType.Destroyer, 4); game.TryAddShip(ShipType.Battleship, 5); _viewAdapter = new ViewAdapter(gameSize); while (!game.IsGameFinished) { try { Console.WriteLine(_viewAdapter.ToString()); Console.WriteLine("Provide position to shoot"); var position = Console.ReadLine(); InputInterpreter.InterpretCell(position, out int rowNumber, out int columnNumber); Console.WriteLine($"Shooting position: {position}."); _lastShotPointRow = rowNumber; _lastShotPointColumn = columnNumber; game.MakeShot(rowNumber, columnNumber); } catch (Exception ex) { Console.WriteLine(ex.Message); } } Console.WriteLine("Game finished !"); }