Пример #1
0
        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;
        }
Пример #2
0
        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;
        }
Пример #3
0
        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;
        }