public void StarNewGame() { Player1.PrepareForNewGame(); Player2.PrepareForNewGame(); Winner = null; RandomizeWhoShouldStart(); }
public Coordinates Shoot() { var shot = Attacker.Shooter.Shoot(); var field = Defender.BattleField[shot.Y][shot.X]; switch (field.State) { case FieldState.Empty: case FieldState.Miss: field.State = FieldState.Miss; Attacker.Shooter.ReportLastShotResult(shot, ShotResult.Missed); Defender.Shooter.ReportOponentsLastShotResult(shot, ShotResult.Missed); SwitchPlayer(); break; case FieldState.Hit: Attacker.Shooter.ReportLastShotResult(shot, ShotResult.Hit); Defender.Shooter.ReportOponentsLastShotResult(shot, ShotResult.Hit); SwitchPlayer(); break; case FieldState.Ship: field.State = FieldState.Hit; var shotResult = field.RelatedFields.Any(f => f.State == FieldState.Ship) ? ShotResult.Hit : ShotResult.Destroyed; Attacker.Shooter.ReportLastShotResult(shot, shotResult); Defender.Shooter.ReportOponentsLastShotResult(shot, shotResult); break; } if (AreAllShipsDestroyed()) { Winner = Attacker; } return(shot); }
public BattleShipGame(IBattleShipShooter shooter1, IBattleShipShooter shooter2) { Player1 = new BattleShipPlayer(shooter1); Player2 = new BattleShipPlayer(shooter2); }