public GameEngine(IAiPlayer aiPlayer, IHumanPlayer humanPlayer) { _player1 = aiPlayer; _player2 = humanPlayer; _humanVsAi = true; Initialize(); }
public GameEngine(IAiPlayer aiPlayer1, IAiPlayer aiPlayer2) { _player1 = aiPlayer1; _player2 = aiPlayer2; _aiVsAi = true; Initialize(); }
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); } }