diff --git a/24.2.jar b/24.2.jar new file mode 100644 index 0000000..9acd23f Binary files /dev/null and b/24.2.jar differ diff --git a/24.3.jar b/24.3.jar new file mode 100644 index 0000000..e48416c Binary files /dev/null and b/24.3.jar differ diff --git a/25.jar b/25.jar new file mode 100644 index 0000000..77f616e Binary files /dev/null and b/25.jar differ diff --git a/core/src/MyStrategy.java b/core/src/MyStrategy.java index 7dd45b8..73f7f3f 100755 --- a/core/src/MyStrategy.java +++ b/core/src/MyStrategy.java @@ -38,7 +38,6 @@ public final class MyStrategy implements Strategy { private static final boolean HELICS_WAIT_FOR_FIGHTES = true; public static final int CAN_DISABLE_FEAR_SINCE_TICK = 9300; public static final int CAN_DISABLE_FEAR_SINCE_COUNT = 490; - public static final int MAX_CELL_DISTANCE_OF_MOVE = 11 / 2; public static final int MAX_SWITCH_COUNT = 400; private static int constantId; @@ -436,7 +435,7 @@ private PlainArray calcMap(VehicleGroupInfo group) { //TODO improve logic at fin Set> myHelic = myHelicsMap.entrySet(); - double range = (GROUP_SIZE * 1.8) / cellSize; + double range = (GROUP_SIZE * 1.2) / cellSize; int factor = 6; @@ -1592,10 +1591,38 @@ private void schedulePotentialMoveToPoint(VehicleGroupInfo myGroup) { int myY = averagePoint.getIntY(); Point2D bestChoice = null; - int half = MAX_CELL_DISTANCE_OF_MOVE; - if (myGroup.vehicleType == TANK || myGroup.vehicleType == IFV) { + int half = 3; + /* switch (myGroup.vehicleType) { + case ARRV: + half = 3; + break; + case FIGHTER: + half = 4; + break; + case HELICOPTER: + half = 4; + break; + case IFV: + half = 3; + break; + case TANK: + half = 3; + break; + }*/ + + long count = um.facilityById.values().stream().filter(v -> v.isMy() && v.f.getType() == CONTROL_CENTER).count(); + + if (myGroup.count > 20) { + half++; + half++; + } else if (myGroup.count > 13) { + half++; + } else if (count >= 2) { + half--; + } else if (myGroups.size() < 5) { half--; } + for (int x = myX - half; x <= myX + half; x++) { for (int y = myY - half; y <= myY + half; y++) { Point2D currentChoice = new Point2D(x, y); diff --git a/core/src/RewindClientWrapper.java b/core/src/RewindClientWrapper.java index 02cba63..4546d5a 100644 --- a/core/src/RewindClientWrapper.java +++ b/core/src/RewindClientWrapper.java @@ -190,7 +190,7 @@ private void drawPP(VehicleGroupInfo myGroup) { double root = root(delta, delta); - double squareMaxDistance = Math.pow(cellSize * (MyStrategy.MAX_CELL_DISTANCE_OF_MOVE + 3), 2); + double squareMaxDistance = Math.pow(cellSize * (6 + 3), 2); for (int x = 0; x < cellsX; x++) { diff --git a/core/src/Runner.java b/core/src/Runner.java index 1dfaefc..390dba6 100755 --- a/core/src/Runner.java +++ b/core/src/Runner.java @@ -45,7 +45,8 @@ public static void main(String[] args) throws IOException { //runProc(null, true, "java", "-cp", "23.2.jar", "Runner"); //runProc(null, true, "java", "-cp", "23.4.jar", "Runner"); //runProc(null, true, "java", "-cp", "23.5.jar", "Runner"); - runProc(null, true, "java", "-cp", "24.jar", "Runner"); + //runProc(null, true, "java", "-cp", "24.jar", "Runner"); + runProc(null, true, "java", "-cp", "25.jar", "Runner"); } }).start(); new Runner(new String[]{"127.0.0.1", hasArgs ? "31001" : "31002", "0000000000000000"}).run(); diff --git a/lr/local-runner-sync.default.properties b/lr/local-runner-sync.default.properties index 54d4e13..d25431e 100755 --- a/lr/local-runner-sync.default.properties +++ b/lr/local-runner-sync.default.properties @@ -62,9 +62,9 @@ fog-of-war-quality=1 # генератора случайных чисел или пустая строка. # Параметр в командной строке имеет больший приоритет. #seed=51764284009692 -#seed=536603617854755 +seed=536603617854755 #seed=539675860738317 -seed= +#seed=541562105365045 # Путь к каталогу с плагинами или пустая строка для работы без плагинов. # Необходимо скомпилировать плагин, чтобы он загрузился игровым симулятором.