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