public void RenderGrid(Grid grid) { Console.SetCursorPosition(GridColPosition, GridRowPosition); this.scene.Clear() .Append(' '); for (int i = 1; i <= GlobalConstants.GridColsCount; i++) { string toAppend = i < 9 ? i.ToString() : i.ToString().Substring(i.ToString().Length - 1); this.scene.Append(toAppend); } this.scene.AppendLine(); for (int row = 0; row < grid.TotalRows; row++) { this.scene.Append((char)(GlobalConstants.MinRowValueOnGridAsciiCode + row)); for (int col = 0; col < grid.TotalCols; col++) { this.scene.Append(grid.GetCell(row, col)); } this.scene.Append(Environment.NewLine); } Console.WriteLine(this.scene.ToString()); this.SetCursorAtInputPosition(); }
public Engine(IRenderer renderer, IInterface userInterface, IGameInitializationStrategy gameInitializationStrategy) { this.renderer = renderer; this.userInterface = userInterface; this.gameInitializationStrategy = gameInitializationStrategy; this.ships = new List<IShip>(); this.hiddenGrid = new Grid(); this.visibleGrid = new Grid(); this.totalAttempts = 0; this.gameStatus = GameStatus.Play; }
public void Can_Miss_Ship() { var grid = new Grid(_mockConfigurationManger.Object); grid.Ships.Add(_validBattleship); var gameService = new GameService(grid); const Enums.Missile expectedResult = Enums.Missile.Miss; gameService.FireMissile("a6"); Assert.AreEqual(expectedResult, gameService.GetGameStatus()); }
/// <summary> /// Updates grid position /// </summary> public void UpdateGrid(Grid grid, Position position) { Console.SetCursorPosition(position.Col + GridColPosition + 1, position.Row + GridRowPosition + 1); Console.Write(grid.GetCell(position.Row, position.Col)); this.SetCursorAtInputPosition(); }
public void Can_Not_Enter_Invalid_Grid_References(string gridReference) { var grid = new Grid(_mockConfigurationManger.Object); var gameService = new GameService(grid); const Enums.Missile expectedResult = Enums.Missile.InvalidCoordinate; gameService.FireMissile(gridReference); Assert.AreEqual(expectedResult, gameService.GetGameStatus()); }
public void Can_Not_Fired_At_The_Same_Coordinates_Twice() { var grid = new Grid(_mockConfigurationManger.Object); grid.Ships.Add(_validBattleship); var gameService = new GameService(grid); const Enums.Missile expectedResult = Enums.Missile.AlreadyFiredAt; gameService.FireMissile("a1"); gameService.FireMissile("a1"); Assert.AreEqual(expectedResult, gameService.GetGameStatus()); }
public void Can_Sink_Final_Ship_And_Finish_Game() { var grid = new Grid(_mockConfigurationManger.Object); grid.Ships.Add(_validBattleship); var gameService = new GameService(grid); const Enums.Missile expectedResult = Enums.Missile.AllShipsDestroyed; gameService.FireMissile("a1"); gameService.FireMissile("b1"); gameService.FireMissile("c1"); gameService.FireMissile("d1"); gameService.FireMissile("e1"); Assert.AreEqual(expectedResult, gameService.GetGameStatus()); }