From: "Enrico Weigelt, metux IT consult" <enrico.weig...@gr13.net>

---
 src/net/sf/freecol/server/ai/EuropeanAIPlayer.java | 26 +++++++++++++---------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java 
b/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java
index eaa57d0b5e2..123b68280cc 100644
--- a/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java
+++ b/src/net/sf/freecol/server/ai/EuropeanAIPlayer.java
@@ -30,7 +30,6 @@ import java.util.Random;
 import java.util.Set;
 import java.util.function.Function;
 import java.util.function.Predicate;
-import java.util.function.ToDoubleFunction;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import java.util.stream.Collectors;
@@ -1194,19 +1193,24 @@ public class EuropeanAIPlayer extends MissionAIPlayer {
      */
     public GoodsWish getBestGoodsWish(AIUnit aiUnit, GoodsType goodsType) {
         final Unit carrier = aiUnit.getUnit();
-        final ToDoubleFunction<GoodsWish> wishValue
-            = cacheDouble(gw -> {
-                    int turns = carrier.getTurnsToReach(carrier.getLocation(),
+
+        List<GoodsWish> wishes = goodsWishes.get(goodsType);
+        if (wishes == null) return null;
+
+        GoodsWish best = null;
+        double best_gwv = 0;
+        for (GoodsWish gw : wishes) {
+            int turns = carrier.getTurnsToReach(carrier.getLocation(),
                                                         gw.getDestination());
-                    return (turns >= Unit.MANY_TURNS) ? -1.0
+            double gwv = (turns >= Unit.MANY_TURNS) ? -1.0
                         : (double)gw.getValue() / turns;
-                });
-        final Comparator<GoodsWish> comp
-            = Comparator.comparingDouble(wishValue);
+            if (best == null || gwv > best_gwv) {
+                best = gw;
+                best_gwv = gwv;
+            }
+        }
 
-        List<GoodsWish> wishes = goodsWishes.get(goodsType);
-        return (wishes == null) ? null
-            : maximize(wishes, gw -> wishValue.applyAsDouble(gw) > 0.0, comp);
+        return best;
     }
 
     /**
-- 
2.11.0.rc0.7.gbe5a750


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Freecol-developers mailing list
Freecol-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freecol-developers

Reply via email to