hanabi: put the bookkeeping in the panel #13

Merged
joeyr merged 1 commit from hanabi/hud into main 2026-08-16 23:14:52 -05:00
Owner

Physical stacks answer what is on the table badly. A firework stack shows only its top card and a discard pile only its last — precisely the two things players need to count. On a real table someone says it out loud; here the panel does.

  • Clue tokens and fuses as pips. "Clues 5" has to be read; five filled next to three empty is counted at a glance.
  • Each suit shows height over what it can still reach. 2/2 means that stack is dead and the table can stop feeding it. Rules.reachable already computed this but it had nowhere to appear.
  • Discard pile spelled out and deduped with counts, so Y4x2 is visible. Which copies are gone is the whole endgame, and a stack of overlapping cards hides exactly that.

This is the useful half of going fully 2D: bookkeeping wants to be text, cards want to be objects, and there is no reason to pick one.

Verified through the harness rather than by eye — 200 seeds still pass, plus a probe that prints the HUD strings for a mid-game board.

Physical stacks answer *what is on the table* badly. A firework stack shows only its top card and a discard pile only its last — precisely the two things players need to count. On a real table someone says it out loud; here the panel does. - **Clue tokens and fuses as pips.** "Clues 5" has to be read; five filled next to three empty is counted at a glance. - **Each suit shows height over what it can still reach.** `2/2` means that stack is dead and the table can stop feeding it. `Rules.reachable` already computed this but it had nowhere to appear. - **Discard pile spelled out and deduped with counts**, so `Y4x2` is visible. Which copies are gone is the whole endgame, and a stack of overlapping cards hides exactly that. This is the useful half of going fully 2D: bookkeeping wants to be text, cards want to be objects, and there is no reason to pick one. Verified through the harness rather than by eye — 200 seeds still pass, plus a probe that prints the HUD strings for a mid-game board.
hanabi: put the bookkeeping in the panel
All checks were successful
lint / lua (pull_request) Successful in 18s
ebbb170fac
Physical stacks answer "what is on the table" badly. A firework stack shows only
its top card and a discard pile shows only its last, and those are precisely the
two things players need to count. On a real table someone says it out loud; here
the panel does.

Three additions.

Clue tokens and fuses are pips rather than numerals. "Clues 5" has to be read;
five filled next to three empty is counted at a glance, and how many are left is
the number every decision turns on.

Each suit shows its height over what it can still reach, so 2/2 means that stack
is dead and the table can stop feeding it. That was already computable from
Rules.reachable but had nowhere to appear, which made it useless.

The discard pile is spelled out and deduped with counts, so Y4x2 is visible at a
glance. Which copies are gone is the whole endgame, and it is exactly what a
stack of overlapping cards hides.

This is the useful half of going fully 2D. The bookkeeping wants to be text and
the cards want to be objects, and there is no reason to pick one.

Verified against a live game through the harness rather than by eye: 200 seeds
still pass, and a probe run prints the HUD strings for a board mid-game.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
joeyr merged commit 3419ec985b into main 2026-08-16 23:14:52 -05:00
joeyr referenced this pull request from a commit 2026-08-16 23:14:53 -05:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
joeyr/tts-games!13
No description provided.