Screens for Yahtzee and Klondike, and both into the catalogue

Two engines that had been sitting behind ids now have screens, so they are
tappable and playable.

The Yahtzee card shows what the dice on the table would score in every box
still open. That comparison is the whole of the decision, and doing the
arithmetic by eye is not what anybody wants from a phone. A turn is two choices
and the screen shows them together: which dice to keep before throwing again,
and which box to write in when the throwing stops.

Klondike plays tap-to-take then tap-to-put rather than by dragging. A drag
across seven columns of overlapping cards on a phone is mostly a test of aim.
Tapping a face-up card takes it and everything resting on it, so a run travels
the way it would on a table. Which taps do anything is read off the legal moves
the rules offer, so the screen never has to know why a move is allowed.

Klondike deals again by rebuilding the controller, as peg solitaire does: a
blocked deal is genuinely finished, so driveIdleSeats has already stopped and
advanceIdle would never run.

Yahtzee seats one to six, so it needed a case in seatCountFor. Without one the
seat count falls through to the catalogue minimum, which is one now that solo
play exists -- a two-handed game would have been dealt a single seat and the
rules would have refused the table.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Urn6eEBA6XzrnfoibL7faC
This commit is contained in:
Claude
2026-08-08 15:39:04 +00:00
parent 3dbc4b5557
commit 831b2fc925
6 changed files with 705 additions and 10 deletions
@@ -73,6 +73,8 @@ class CatalogTest {
GameCatalog.CRIBBAGE,
GameCatalog.HEARTS,
GameCatalog.PEG_SOLITAIRE,
GameCatalog.YAHTZEE,
GameCatalog.KLONDIKE,
GameCatalog.WIZARD,
GameCatalog.CHESS,
GameCatalog.TAYU,