From: "Enrico Weigelt, metux IT consult" <enrico.weig...@gr13.net>
--- .../freecol/server/generator/SimpleMapGenerator.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/net/sf/freecol/server/generator/SimpleMapGenerator.java b/src/net/sf/freecol/server/generator/SimpleMapGenerator.java index 53007bdd3c8..5a1ab8985f9 100644 --- a/src/net/sf/freecol/server/generator/SimpleMapGenerator.java +++ b/src/net/sf/freecol/server/generator/SimpleMapGenerator.java @@ -660,14 +660,21 @@ public class SimpleMapGenerator implements MapGenerator { int radius, List<Tile> tiles, LogBuilder lb) { final Tile center = territory.getCenterTile(map); - final Predicate<Tile> terrPred = t -> - territory.player.getClaimableTiles(t, radius).size() - >= (2 * radius + 1) * (2 * radius + 1) / 2; - final Comparator<Tile> comp - = Comparator.comparingInt(t -> t.getDistanceTo(center)); // Choose a tile that is free and half the expected tile claims // can succeed, preventing capitals on small islands. - Tile t = first(transform(tiles, terrPred, Function.identity(), comp)); + Tile t = null; + int best_dist = Integer.MAX_VALUE; + for (Tile walk : tiles) { + if (territory.player.getClaimableTiles(walk, radius).size() + >= (2 * radius + 1) * (2 * radius + 1) / 2) { + int dist = walk.getDistanceTo(center); + if (dist < best_dist) { + t = walk; + best_dist = dist; + } + } + } + if (t == null) return null; String name = (territory.region == null) ? "default region" -- 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