Repository navigation
Checkers: Huevo chains can be continued by tapping (#879) - #880
Conversation
In Huevo every landing is a legal end of the move, so the tap handler, which plays a move as soon as one matches the landings tapped so far, played the first hop at once and no chain could be continued. As the designer's write-up asks, every landing of every chain is now a dot and a tap plays the move that stops there; when different captures stop on the same square, the route is picked hop by hop. Classic and Spanish taps are unchanged. The tap logic lives in the engine (pickOf, tapPick) so Node tests can drive it. Reported by HuevosKicker on #391. Closes #879 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Diff review Why this shape: in Huevo, The reporter suggested a popup for ambiguous endpoints. Here the square becomes a Tested: the new group (fails on main because the functions are missing, 13/13 on the branch), the whole suite, browser-check, and real taps through Chrome on old and new code (table in the PR body). Classic forced-chain tapping is covered by its own check. Not tested: keyboard play of a Huevo chain (Enter calls the same |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closes #879
Reported by @HuevosKicker on #391: in Huevo Style a capture chain could never be continued by tapping.
What changed
www/games/checkers/index.html: the tap logic moved into the engine aspickOf(which squares are dots) andtapPick(what a tap does), and the page'spickState/tapSquarecall them.tools/tests/checkers-huevo-chains.js: 13 checks on real move lists: dots on every landing, the far tap plays the whole chain, the near tap stops, a king's middle landing, the two-route goal case, classic unchanged, and the page wiring.tools/test.js: the wiring check now expects fourE.moves(S.board, S.turn, S.rules, S.free, S)call sites, not three (the extra one is intapSquare).Not included: the reporter's Empress point (flying back over squares she captured earlier in the same move). It is a rule change the write-up does not state, so it waits for the owner.
Proof
New test group against
origin/main's checkers:✗ the engine has the tap logic (pickOf, tapPick), exit 1. On the branch: 13 of 13, exit 0.Real taps in headless Chrome. Each run reports the folder its port served. Seeded Huevo board: a man on 49 can take 42 (landing 35), then 28 (landing 21).
node tools/test.js: all 10182 checks green, exit 0.tools/browser-check.sh: 75 of 75 pages, exit 0.🤖 Generated with Claude Code