public double GetDesirability(IPlayer player) { if (map.GetPlayerMe().GetBuildingCount(Building.Fort) == 0) return 0.0; int sum = 0; int sourceHim; int sourceMe; ISourceAll source = player.GetSource(); IPlayer me = map.GetPlayerMe(); for (int loop1 = 0; loop1 < 5; loop1++) { sourceHim = source.Get((SourceKind)loop1); sourceMe = me.GetCollectSourcesNormal().Get((SourceKind)loop1); sum += (sourceMe <= 16) ? sourceHim * 2 : sourceHim; } double result = (sum - 2 * AIGen.SumVector(map.GetPrice(PriceKind.AStealSources).GetAsArray())) / 200.0; if (result < 0.0) result = 0.0; else if (result > 1.0) result = 1.0; return result; }
public static float GetFitness(IPlayer player) { if (map.GetPlayerOthers().Count == 0) return 0.0f; int sum = 0; int sourceHim; int sourceMe; ISourceAll source = player.GetSource(); IPlayer me = map.GetPlayerMe(); for (int loop1 = 0; loop1 < 5; loop1++) { sourceHim = source.Get((SourceKind)loop1); sourceMe = me.GetCollectSourcesNormal().Get((SourceKind)loop1); sum += (sourceMe <= 16) ? sourceHim * 2 : sourceHim; } float result = sum / 2000.0f; if (result > 1.0f) result = 1.0f; return result; }
public Boolean HasPlayerSources(IPlayer player) { if (player == null) return false; ISourceAll sourcePlayer = player.GetSource(); return sourcePlayer.GetCorn() >= corn && sourcePlayer.GetMeat() >= meat && sourcePlayer.GetOre() >= ore && sourcePlayer.GetStone() >= stone && sourcePlayer.GetWood() >= wood; }