public void PerformNextAction(IGamePlayerManager manager) { Thread.Sleep(2500); // simulate thinking delay // simply skip the round manager.SkipRound(); }
public ComputerGamePlayer(IGamePlayerManager manager, IShipPositionGenerator shipPositionGenerator, IGameEvents gameEvents, IPlayerAI playerAI) : base(manager) { _shipPositionGenerator = shipPositionGenerator; gameEvents.FireRequested += (player, xCord, yCord) => { if (player.Equals(this)) { return; } Manager.VerifyOpponentFire(player, xCord, yCord); }; gameEvents.GameSessionStarted += (session) => { _nextMoveAvailable = true; }; gameEvents.GameSessionFinished += (session, winner) => { _nextMoveAvailable = false; }; gameEvents.RoundFinished += (player, result) => { if (_nextMoveAvailable) { playerAI.PerformNextAction(Manager); } }; }
public GamePlayer(IGamePlayerManager manager) { Manager = manager; }