//create method to display game menu and instruct user to start game public static void DisplayMenu() { Console.WriteLine("*****************************"); Console.WriteLine("* Welcome to Battleship!! *"); Console.WriteLine("*****************************"); Console.WriteLine("Press any key to start the game"); Console.ReadKey(); Console.Clear(); ConsoleOutput.DrawBoard(); }
internal static void Play(GameState state) { Player attackingPlayer = null; Player defendingPlayer = null; Player activePlayer = null; bool isVictory = false; while (!isVictory) { if (state.IsATurn) { attackingPlayer = state.Player1; defendingPlayer = state.Player2; } else { attackingPlayer = state.Player2; defendingPlayer = state.Player1; } if (state.IsATurn) { activePlayer = state.Player1; } else { activePlayer = state.Player2; } //Attacking player fires first shot var shotCoordinate = ConsoleInput.FireCoordinates(state); ConsoleOutput.DrawBoard(defendingPlayer.PlayerBoard); //Coordinates should receive a FireShotResponse FireShotResponse response = defendingPlayer.PlayerBoard.FireShot(shotCoordinate); switch (response.Status) { case ShotStatus.Hit: ConsoleOutput.ShipHit(state); state.IsATurn = !state.IsATurn; break; case ShotStatus.Miss: ConsoleOutput.ShipMissed(state); state.IsATurn = !state.IsATurn; break; case ShotStatus.Duplicate: ConsoleOutput.DuplicateShot(state); state.IsATurn = true; break; case ShotStatus.Invalid: ConsoleOutput.InvalidShot(state); state.IsATurn = true; break; case ShotStatus.HitAndSunk: ConsoleOutput.ShipSunk(state); state.IsATurn = !state.IsATurn; break; case ShotStatus.Victory: ConsoleOutput.Victory(state); isVictory = true; break; } } }