Example #1
0
        public void PerformNextAction(IGamePlayerManager manager)
        {
            Thread.Sleep(2500); // simulate thinking delay

            // simply skip the round
            manager.SkipRound();
        }
Example #2
0
        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);
                }
            };
        }
Example #3
0
 public GamePlayer(IGamePlayerManager manager)
 {
     Manager = manager;
 }