Skip to content

Add zone_split_shape strategy - #138

Closed
isaac0804 wants to merge 3 commits into
mainfrom
strategy/zone-split-shape
Closed

isaac0804 wants to merge 3 commits into
mainfrom
strategy/zone-split-shape

Conversation

@isaac0804

@isaac0804 isaac0804 commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Idea

zone_split_shape is split_shape (LeadAndSupportTactic + ShadowAndMarkTactic) with the 4/1 possession split shifted one robot by the ball's third: with the ball in our own third, 3 attack / 2 defend (a build-out from the back keeps cover); without it and the ball in their final third, 2 attack / 3 defend (a robot stays up to win the ball back). Near-ties keep the previous split (sticky) via friendly_closer_to_ball. Might beat split_shape because its all-in 4/1 swings leave nobody covering a turnover in either end.

Result

Not a round-robin. --reuse missed all 253 matches (the cache's newest entries are from 2026-10-01 22:35; pickers.py and tournament_lib.py/analysis/ changed since, so every key moved), so I stopped it rather than replay 253 matches and played --pair matches instead (zone_split_shape as config_a, 65s, 0 stalls):

Opponent Result
split_shape 2-0
counter_flow 1-0
tiki_taka 1-0
low_block 1-0
clear_danger 0-0

4-1-0, goals 5-0. Single deterministic matches, one side each: a screen, not a ranking.

Checks

  • Full suite --headless: 12448 passed, 88 xfailed. Lint passes.
  • Changes only strategy/zone_split_shape.py, its import line in kernel_strategy.py, tests/strategy/test_zone_split_shape.py, and docs/strategies.md (catalog row + pair-match table).

Round-robin (added 2026-10-03)

Full 23-config round-robin with zone_split_shape in (--strict, 65s, 253 matches, 0 stalls, replays/tournament_20261003_093209; --reuse missed because the cache was keyed on the release version, fixed in #140):

Rank Strategy W-D-L GF-GA Points per match
1 split_shape 11-8-3 14-4 1.86
2 counter_flow 9-13-0 9-0 1.82
3 clear_danger 10-10-2 10-2 1.82
4 zone_split_shape 10-8-4 14-7 1.73
5 give_and_go_solo 8-12-2 10-4 1.64

Below its parent split_shape (which beats it on points and concedes fewer), so the 4-1-0 from five pair matches above was optimistic. The pair-match table was moved out of docs/strategies.md into this description.

🤖 Generated with Claude Code

https://claude.ai/code/session_01SACGSprm9GiBueqKdxsy2j

@isaac0804

Copy link
Copy Markdown
Contributor Author

Closing without merging: in the full 23-config round-robin zone_split_shape finished 4th (1.73 points per match), below its parent split_shape (1st, 1.86), so the idea doesn't improve on what it builds on. Kept as a record; the branch stays. This PR was also the first end-to-end trial of the strategy/* workflow, which worked.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant