public static ShotStatus FireShotAtEnemey(Player player) { Coordinate coordToShoot = ConsoleInput.GetCoordinateFromUser(); ShotStatus returnvValue = player.board.FireShot(coordToShoot).ShotStatus; //use return returnValue istead of if else if (returnvValue == ShotStatus.Hit) { Console.WriteLine(ShotStatus.Hit); return(ShotStatus.Hit); } else if (returnvValue == ShotStatus.HitAndSunk) { Console.WriteLine(ShotStatus.HitAndSunk); return(ShotStatus.HitAndSunk); } else if (returnvValue == ShotStatus.Duplicate) { Console.WriteLine(ShotStatus.Duplicate); return(ShotStatus.Duplicate); } else if (returnvValue == ShotStatus.Miss) { Console.WriteLine(ShotStatus.Miss); return(ShotStatus.Miss); } else { return(ShotStatus.Victory); } }
public Board BuildBoard(Board boardname) { boardname = new Board(); PlaceShipRequest request = new PlaceShipRequest(); ConsoleOutput.DrawBlankBoard(); for (ShipType s = ShipType.Destroyer; s <= ShipType.Carrier; s++) { request.ShipType = s; while (true) { Console.WriteLine($"Place your {s}, by indicating the starting coordinate.\n Press 'm' at any time to redraw the board"); request.Coordinate = ConsoleInput.GetCoordinateFromUser(); request.Direction = ConsoleInput.GetShipDirection(); var result = boardname.PlaceShip(request); if (result == ShipPlacement.Overlap) { ConsoleOutput.OverlappingShip(); } if (result == ShipPlacement.NotEnoughSpace) { ConsoleOutput.NotEnoughSpace(); } if (result == ShipPlacement.Ok) { ConsoleOutput.ShipSuccessPlaced(); break; } } } return(boardname); }
public GameFlow(Player Attacker, Player Receiver) { FireShotResponse ShotResponse; while (true) { ConsoleOutput.PromptPlayerTurn(Attacker); var shot = ConsoleInput.GetCoordinateFromUser(); ShotResponse = Receiver.PlayerBoard.FireShot(shot); ShotStatus result = ShotResponse.ShotStatus; string ShipHit = ShotResponse.ShipImpacted; if (result == ShotStatus.Miss) { ConsoleOutput.Miss(Attacker.Name); break; } else if (result == ShotStatus.Hit) { ConsoleOutput.Hit(Attacker.Name); break; } else if (result == ShotStatus.HitAndSunk) { ConsoleOutput.HitAndSunk(Attacker.Name, Receiver.Name, ShipHit); break; } else if (result == ShotStatus.Victory) { ConsoleOutput.DeclareVictory(Attacker.Name, Receiver.Name); GameOver = true; break; } else if (result == ShotStatus.Duplicate) { ConsoleOutput.Duplicate(Attacker.Name); } else { ConsoleOutput.InvalidShot(Attacker.Name); } } }
public static void PlaceShips(Player player) { for (ShipType s = ShipType.Destroyer; s <= ShipType.Carrier; s++) { PlaceShipRequest request = new PlaceShipRequest(); request.ShipType = s; Console.WriteLine("Placing " + s); request.Coordinate = ConsoleInput.GetCoordinateFromUser(); request.Direction = ConsoleInput.GetDirectionFromUser(); ShipPlacement result = player.board.PlaceShip(request); if (result != ShipPlacement.Ok) { Console.WriteLine("Could not place " + s + " there because of a(n) " + result); s--; } } Console.Clear(); }