Spaces:
Running
fix(scenario): coord-converge-on-target — triple-prong convergent attack (SC2 / military pincer anchor)
Browse filesCloser-look pass on the Wave-5 salvage version of this pack:
- EAST squad in hard tier was at (134,20) → out of map bounds (rush-
hour-arena is 128 wide). Earlier salvage layout (74,8)/(126,20)/
(74,32) for spawn_point 1 placed the lateral squad close enough to
the objective that a 2-squad north+south policy could win the trade
cleanly, breaking the load-bearing 'three-prong required' clause.
- Re-laid spawn_point 1 as a shifted N/W/S layout (76,5)/(72,18)/
(76,32) — same convergent shape as spawn_point 0 (70,6/66,20/70,34)
but shifted by a few cells per axis. Both layouts now keep all
three squads ~27-34 cells from the objective so a naive
simultaneous attack-move arrives together; the W-squad column and
N/S latitudes flip per seed so a memorised single-cell opening
cannot generalise.
Validated scripted (no model / network):
- intended 3-prong attack-move WINS easy/medium/hard × seeds 1..4
- stall (observe-only) LOSES on every tier × every seed
- single-squad-N (only north squad attacks) LOSES on medium/hard
× every seed (3 tanks vs 4 e3 guards is wiped)
- two-squad (north + south, lateral squad held) LOSES on medium/
hard × every seed (fact destroyed but no tanks survive in the
objective region — n=6 region threshold fails)
Tick budgets: after_ticks 4501 ≤ 93 + 90·53 = 4863 (max_turns=54),
so the deadline bites cleanly within max_turns (no DRAW degeneracy).
|
@@ -44,10 +44,10 @@
|
|
| 44 |
# attack defeated piecewise (the calibration bar still requires
|
| 45 |
# simultaneous arrival).
|
| 46 |
# - Enemy actors are NOT filtered by `spawn_point` (CLAUDE.md). The
|
| 47 |
-
# hard tier varies the AGENT staging —
|
| 48 |
-
#
|
| 49 |
-
#
|
| 50 |
-
# cluster stays symmetric.
|
| 51 |
|
| 52 |
meta:
|
| 53 |
id: coord-converge-on-target
|
|
@@ -189,57 +189,50 @@ levels:
|
|
| 189 |
|
| 190 |
# ── HARD ─────────────────────────────────────────────────────────
|
| 191 |
# +1 more controlled variable: TWO seed-driven agent spawn groups
|
| 192 |
-
# round-robined per seed.
|
| 193 |
-
#
|
| 194 |
-
#
|
| 195 |
-
#
|
| 196 |
-
#
|
| 197 |
-
#
|
| 198 |
-
#
|
| 199 |
-
#
|
| 200 |
-
# filter rule in CLAUDE.md ("if ANY agent actor declares
|
| 201 |
# spawn_point, every agent actor WITHOUT spawn_point is filtered
|
| 202 |
-
# OUT"
|
| 203 |
-
#
|
| 204 |
-
# without changing the geometry per seed.
|
| 205 |
hard:
|
| 206 |
description: >
|
| 207 |
THREE squads of medium tanks (3× 2tnk each, 9 tanks total) must
|
| 208 |
converge on the enemy construction yard (`fact` at ~100,20)
|
| 209 |
defended by 4 leashed rocket-infantry guards (one on each
|
| 210 |
-
cardinal face). The squad
|
| 211 |
-
stages NORTH (~70,6) / WEST (~66,20) / SOUTH (~70,34);
|
| 212 |
-
other stages
|
| 213 |
-
|
| 214 |
-
squad) so a synchronised launch
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
| 219 |
-
|
|
|
|
| 220 |
overrides:
|
| 221 |
actors:
|
| 222 |
# spawn_point 0 — NORTH / WEST-of-objective / SOUTH.
|
| 223 |
- {type: 2tnk, owner: agent, position: [70, 6], stance: 1, count: 3, spawn_point: 0}
|
| 224 |
- {type: 2tnk, owner: agent, position: [66, 20], stance: 1, count: 3, spawn_point: 0}
|
| 225 |
- {type: 2tnk, owner: agent, position: [70, 34], stance: 1, count: 3, spawn_point: 0}
|
| 226 |
-
# spawn_point 1 —
|
| 227 |
-
#
|
| 228 |
-
#
|
| 229 |
-
#
|
| 230 |
-
#
|
| 231 |
-
#
|
| 232 |
-
#
|
| 233 |
-
#
|
| 234 |
-
|
| 235 |
-
|
| 236 |
-
|
| 237 |
-
# (126, 20) (~26 cells) — a naive simultaneous launch from
|
| 238 |
-
# group 1 has all three squads arrive together (group 0
|
| 239 |
-
# already balanced at ~34 from each of W / N / S).
|
| 240 |
-
- {type: 2tnk, owner: agent, position: [74, 8], stance: 1, count: 3, spawn_point: 1}
|
| 241 |
-
- {type: 2tnk, owner: agent, position: [126, 20], stance: 1, count: 3, spawn_point: 1}
|
| 242 |
-
- {type: 2tnk, owner: agent, position: [74, 32], stance: 1, count: 3, spawn_point: 1}
|
| 243 |
# The OBJECTIVE.
|
| 244 |
- {type: fact, owner: enemy, position: [100, 20]}
|
| 245 |
# 4 guards: one on each cardinal face. Symmetric: equally
|
|
|
|
| 44 |
# attack defeated piecewise (the calibration bar still requires
|
| 45 |
# simultaneous arrival).
|
| 46 |
# - Enemy actors are NOT filtered by `spawn_point` (CLAUDE.md). The
|
| 47 |
+
# hard tier varies the AGENT staging — both groups share the
|
| 48 |
+
# 3-prong N/W/S shape, but staging cells are shifted (the W-squad
|
| 49 |
+
# column flips by ~6 cells and the N/S latitudes shift) — while
|
| 50 |
+
# the defender cluster stays symmetric.
|
| 51 |
|
| 52 |
meta:
|
| 53 |
id: coord-converge-on-target
|
|
|
|
| 189 |
|
| 190 |
# ── HARD ─────────────────────────────────────────────────────────
|
| 191 |
# +1 more controlled variable: TWO seed-driven agent spawn groups
|
| 192 |
+
# round-robined per seed. Both groups share the 3-prong N/W/S
|
| 193 |
+
# convergent shape, but the staging cells are shifted between
|
| 194 |
+
# groups (group 0: 70,6/66,20/70,34; group 1: 76,5/72,18/76,32);
|
| 195 |
+
# the W-squad column flips by ~6 cells and the N/S latitudes shift
|
| 196 |
+
# so a memorised single-cell opening cannot generalise across
|
| 197 |
+
# seeds. The defender cluster stays symmetric (4 guards, one on
|
| 198 |
+
# each cardinal face) so both spawns face the same convergent
|
| 199 |
+
# geometry. Per CLAUDE.md, "if ANY agent actor declares
|
|
|
|
| 200 |
# spawn_point, every agent actor WITHOUT spawn_point is filtered
|
| 201 |
+
# OUT", so every agent actor declares its spawn_point and the two
|
| 202 |
+
# full squad layouts are listed explicitly.
|
|
|
|
| 203 |
hard:
|
| 204 |
description: >
|
| 205 |
THREE squads of medium tanks (3× 2tnk each, 9 tanks total) must
|
| 206 |
converge on the enemy construction yard (`fact` at ~100,20)
|
| 207 |
defended by 4 leashed rocket-infantry guards (one on each
|
| 208 |
+
cardinal face). The squad staging cells flip per seed: one
|
| 209 |
+
spawn stages NORTH (~70,6) / WEST (~66,20) / SOUTH (~70,34);
|
| 210 |
+
the other stages a shifted variant — NORTH (~76,5) / WEST
|
| 211 |
+
(~72,18) / SOUTH (~76,32). Both layouts are balanced
|
| 212 |
+
equidistant (~27-34 cells per squad) so a synchronised launch
|
| 213 |
+
arrives together; a memorised single-cell opening cannot
|
| 214 |
+
generalise. A single squad alone is destroyed by the guards;
|
| 215 |
+
two squads converging trade out the strike force before
|
| 216 |
+
satisfying the region threshold. Win when ≥6 of your 9 tanks
|
| 217 |
+
are inside an 8-cell radius of (100,20) AND the yard is
|
| 218 |
+
destroyed, before tick 4500.
|
| 219 |
overrides:
|
| 220 |
actors:
|
| 221 |
# spawn_point 0 — NORTH / WEST-of-objective / SOUTH.
|
| 222 |
- {type: 2tnk, owner: agent, position: [70, 6], stance: 1, count: 3, spawn_point: 0}
|
| 223 |
- {type: 2tnk, owner: agent, position: [66, 20], stance: 1, count: 3, spawn_point: 0}
|
| 224 |
- {type: 2tnk, owner: agent, position: [70, 34], stance: 1, count: 3, spawn_point: 0}
|
| 225 |
+
# spawn_point 1 — shifted N/W/S layout: NORTH (76,5), WEST
|
| 226 |
+
# (72,18), SOUTH (76,32). Same convergent shape as group 0
|
| 227 |
+
# but the staging cells are shifted (per-seed start
|
| 228 |
+
# variation), keeping all three squads approximately
|
| 229 |
+
# equidistant (~27-28 cells) from the objective so the
|
| 230 |
+
# naive simultaneous launch still arrives together. The W
|
| 231 |
+
# squad's exact column / latitude flips per seed, so a
|
| 232 |
+
# memorised opening cannot generalise across seeds.
|
| 233 |
+
- {type: 2tnk, owner: agent, position: [76, 5], stance: 1, count: 3, spawn_point: 1}
|
| 234 |
+
- {type: 2tnk, owner: agent, position: [72, 18], stance: 1, count: 3, spawn_point: 1}
|
| 235 |
+
- {type: 2tnk, owner: agent, position: [76, 32], stance: 1, count: 3, spawn_point: 1}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 236 |
# The OBJECTIVE.
|
| 237 |
- {type: fact, owner: enemy, position: [100, 20]}
|
| 238 |
# 4 guards: one on each cardinal face. Symmetric: equally
|