Exemple #1
0
 public GameEngine(IAiPlayer aiPlayer, IHumanPlayer humanPlayer)
 {
     _player1   = aiPlayer;
     _player2   = humanPlayer;
     _humanVsAi = true;
     Initialize();
 }
Exemple #2
0
 public GameEngine(IAiPlayer aiPlayer1, IAiPlayer aiPlayer2)
 {
     _player1 = aiPlayer1;
     _player2 = aiPlayer2;
     _aiVsAi  = true;
     Initialize();
 }
Exemple #3
0
        private void MakeAiTurn(IAiPlayer aiPlayer)
        {
            switch (aiPlayer.AiType)
            {
            case AiType.ExtremeGrowth:
                while (aiPlayer.AvailableMutationPoints > 0)
                {
                    if (aiPlayer.TopLeftGrowthChance < 50)
                    {
                        aiPlayer.IncreaseCornerGrowth();
                    }
                    else if (aiPlayer.GrowthScorecard.HealthyCellDeathChancePercentage > 0)
                    {
                        aiPlayer.DecreaseHealthyCellDeathChance();
                    }
                    else
                    {
                        aiPlayer.IncreaseRegrowthChance();
                    }
                }

                break;

            case AiType.Random:
                while (aiPlayer.AvailableMutationPoints > 0)
                {
                    var mutationChoiceIndex = RandomNumberGenerator.Random.Next(0, 3);
                    switch (mutationChoiceIndex)
                    {
                    case 0:
                        aiPlayer.IncreaseMutationChance();
                        break;

                    case 1:
                        aiPlayer.IncreaseCornerGrowth();
                        break;

                    case 2:
                        aiPlayer.IncreaseRegrowthChance();
                        break;

                    case 3:
                        if (aiPlayer.GrowthScorecard.HealthyCellDeathChancePercentage > 0)
                        {
                            aiPlayer.DecreaseHealthyCellDeathChance();
                        }
                        else
                        {
                            aiPlayer.IncreaseRegrowthChance();
                        }
                        break;
                    }
                }

                break;

            default:
                throw new Exception("Unexpected AiType: " + aiPlayer.AiType);
            }
        }