private Board BoardCreated(string PlayerName) { Board toReturn = new Board(); for (ShipType s = ShipType.Carrier; s >= ShipType.Destroyer; s--) { bool IsShipSpotValid = false; do { PlaceShipRequest request = new PlaceShipRequest(); request.Coordinate = BshipInput.GetCoordinate(PlayerName); request.Direction = BshipInput.GetDirection(PlayerName, s); request.ShipType = s; var result = toReturn.PlaceShip(request); if (result == ShipPlacement.NotEnoughSpace) { BshipOutput.TooFar(); } if (result == ShipPlacement.Overlap) { BshipOutput.GGOverlap(); } if (result == ShipPlacement.Ok) { BshipOutput.PlaceSuccess(); IsShipSpotValid = true; } }while (!IsShipSpotValid); } return(toReturn); }
internal static void PlayGame(GameState state) { Player AttackingPlayer = null; Player DefendingPlayer = null; bool victorious = false; while (!victorious) { if (state.IsPlayerOneTurn) { AttackingPlayer = state.P1; DefendingPlayer = state.P2; } else { AttackingPlayer = state.P2; DefendingPlayer = state.P1; } //if (Victorious) //{ // Console.WriteLine("Do you want to play again? Enter Y/N") //} BshipOutput.DrawBoard(DefendingPlayer.PlayerBoard); { Coordinate ToraToraTora = BshipInput.GetCoordinate(AttackingPlayer.PlayerName); FireShotResponse response = DefendingPlayer.PlayerBoard.FireShot(ToraToraTora); //ShotHistory LastShot = new ShotHistory(); switch (response.ShotStatus) { case ShotStatus.Invalid: Console.WriteLine("U WOT M8!? Not a valid coordinate. Try again bozo."); break; case ShotStatus.Hit: Console.WriteLine("Hey look, you proved the haters wrong! You can hit something more than the broad side of a barn! Now it's the next players turn."); Console.ReadLine(); state.IsPlayerOneTurn = !state.IsPlayerOneTurn; Console.Clear(); break; case ShotStatus.Miss: Console.WriteLine("You missed, better luck next time."); Console.ReadLine(); state.IsPlayerOneTurn = !state.IsPlayerOneTurn; Console.Clear(); break; case ShotStatus.Duplicate: Console.WriteLine("U WOT M8!? Dont you know you already shot there?"); break; case ShotStatus.Victory: Console.WriteLine("Congratulations, you rained fire and fury down on your enemies, the likes of which they have never known..."); Console.ReadLine(); victorious = true; Console.Clear(); break; case ShotStatus.HitAndSunk: Console.WriteLine("To repeat the old phrase... You sunk their battleship! Well one of their ships anyway"); state.IsPlayerOneTurn = !state.IsPlayerOneTurn; break; } } } BshipOutput.GameOver(); }