public void MakePlayerMovement_WhenPlayerMadeSomeMovements_ShouldReturnCorrectStatus() { // Arrange var gridGeneratorMock = new Mock <IGridGenerator>(); gridGeneratorMock.Setup(x => x.Generate(false)).Returns(() => { var cpuGrid = new Grid(); cpuGrid.AddShip(new Ship(new Coordinates(1, 1), Orientation.Horizontal, 2)); return(cpuGrid); }); BattleshipOneSideGameEngine engine = new BattleshipOneSideGameEngine(gridGeneratorMock.Object); // Act // Assert // miss Assert.AreEqual(GameStatus.PlayerMovement, engine.Status); var cellStatu = engine.MakePlayerMovement(0, 0); Assert.AreEqual(CellStatus.Miss, cellStatu); // hit Assert.AreEqual(GameStatus.PlayerMovement, engine.Status); cellStatu = engine.MakePlayerMovement(1, 1); Assert.AreEqual(CellStatus.Hit, cellStatu); // sunk Assert.AreEqual(GameStatus.PlayerMovement, engine.Status); cellStatu = engine.MakePlayerMovement(1, 2); Assert.AreEqual(CellStatus.Sunk, cellStatu); Assert.AreEqual(GameStatus.PlayerWon, engine.Status); }
public void StartNewGame() { BattleshipOneSideGameEngine engine = new BattleshipOneSideGameEngine(new RandomGridGenerator()); while (engine.Status == GameStatus.PlayerMovement) { engine.Grid.PrintCpuGrid(); var coordinates = ConsoleHelper.ReadCoordinates(); engine.MakePlayerMovement(coordinates.Row, coordinates.Column); Console.Clear(); } engine.Grid.PrintCpuGrid(); Console.WriteLine("You won!"); Console.ReadKey(); }