public void SetUpBoard() { var ships = new Dictionary <ShipType, int>() { { ShipType.Destroyer, 2 }, { ShipType.Cruiser, 3 }, { ShipType.Submarine, 3 }, { ShipType.Battleship, 4 }, { ShipType.Carrier, 5 } }; foreach (KeyValuePair <ShipType, int> vessel in ships) { ShipPlacement response; do { Console.Clear(); ConsoleOutput.DisplayBoard(this, false); ConsoleOutput.DisplayPlacementMessage(this, vessel.Key, vessel.Value); PlaceShipRequest request = GetPlaceShipRequest(vessel.Key); response = Board.PlaceShip(request); Console.Clear(); ConsoleOutput.DisplayBoard(this, false); ConsoleOutput.DisplayShipResponse(request, response); ConsoleInput.Continue(); } while (response != ShipPlacement.Ok); } Console.Clear(); ConsoleOutput.DisplayBoard(this, false); ConsoleOutput.ClearScreenPrompt(); }
public static bool IsValidShot(FireShotResponse response) { if (response.ShotStatus == ShotStatus.Invalid) { Console.WriteLine("\nYou cannot shoot beyond the board boundaries."); Console.WriteLine("Calibrate your Aegis targeting system and try again."); ConsoleInput.Continue(); return(false); } if (response.ShotStatus == ShotStatus.Duplicate) { Console.WriteLine("\nYou already shot at that target, chief."); Console.WriteLine("The admiral won't let you waste ammunition."); ConsoleInput.Continue(); return(false); } return(true); }
public static void Retaliate(bool player1Turn, User player1, User player2) { bool gameOver = false; User player = (player1Turn) ? player1 : player2; User opponent = (player == player1) ? player2 : player1; Console.WriteLine($"{player.Name}, your superior targeting system has given you"); Console.WriteLine($"first strike advantage. Hit {opponent.Name} before he/she realizes!"); ConsoleInput.Continue(); while (!gameOver) { gameOver = (player1Turn) ? ConsoleInput.Attack(player1, player2) : ConsoleInput.Attack(player2, player1); player1Turn = !player1Turn; } }
public static void SetUpBoard(User player) { ShipPlacement response; var ships = new Dictionary <ShipType, int>() { { ShipType.Destroyer, 2 }, { ShipType.Cruiser, 3 }, { ShipType.Submarine, 3 }, { ShipType.Battleship, 4 }, { ShipType.Carrier, 5 } }; foreach (KeyValuePair <ShipType, int> vessel in ships) { do { Console.Clear(); ConsoleOutput.DisplayBoard(player, false); ConsoleOutput.DisplayPlacementMessage(player, vessel.Key, vessel.Value); var request = new PlaceShipRequest() { Coordinate = ConsoleInput.GetCoordinate(), Direction = ConsoleInput.GetShipDirection(), ShipType = vessel.Key }; response = player.Board.PlaceShip(request); Console.Clear(); ConsoleOutput.DisplayBoard(player, false); ConsoleOutput.DisplayShipResponse(request, response); ConsoleInput.Continue(); } while (response != ShipPlacement.Ok); } Console.Clear(); ConsoleOutput.DisplayBoard(player, false); ClearScreenPrompt(); }