RCWeb Dominoes Display

The Dominoes Display app (app/dominoes) recreates a double-six draw dominoes table for RCWeb. The shared screen owns the game state, renders the board and boneyard, and lets players join by scanning into the companion phone controller.

Icon

icon

What it does

  • Draw dominoes rules: Supports 2 to 12 players, seven-tile hands, automatic extra double-six sets for larger tables, boneyard draws, passes, blocked rounds, and a race to 100 points.
  • Display-owned state: The table validates all moves, tracks open ends, manages turn order, and pushes individualized snapshots to each controller.
  • Shared tile animation: Tiles animate off the phone controller and onto the shared board, with boneyard draws mirrored by incoming hand animations.
  • Join by QR code: New players scan straight into dominoes-control with the current room preselected.

How to play

Setup

Open dominoes on a shared screen such as a TV, projector, or laptop. Players join by scanning the QR code shown on the display, which opens the dominoes-control companion app on their phone. The game supports 2 – 12 players and starts when any player taps Start once at least two players are connected. A standard double-six set (28 tiles) is used for up to 4 players; for larger tables extra sets are shuffled in automatically.

Opening

Each player is dealt 7 tiles. The player holding the highest double (e.g. 6-6) opens the round by placing it on the board. If no double was dealt, the player with the highest-scoring tile opens instead. That opening tile must be played first before any other moves.

Turns

Play proceeds clockwise. On your turn you may:

  • Play a tile that matches one of the two open ends of the chain. Tap a highlighted tile on your phone to play it. If the tile can go on either end you will be asked to choose left or right.
  • Draw from the boneyard if you have no playable tile and the boneyard still has tiles. Tap the draw button to pick up one tile; you may then play it immediately if it fits.
  • Pass if you have no playable tile and the boneyard is empty.

Blocked rounds

If every seated player passes in a row (no one can play and the boneyard is empty), the round is blocked. The player with the lowest pip total in hand wins. Their score is the difference between the total pips in all opponents' hands and their own.

Scoring

When a player plays their last tile they win the round and score the total pip value of every tile remaining in all opponents' hands. Each tile's pip value is the sum of its two sides (e.g. a 5-3 tile is worth 8 points).

Winning

The first player to reach 100 points across multiple rounds wins the match. After a round ends, a new round is automatically dealt after a short countdown. After a match is won, scores reset and a fresh game begins.

Tips

  • Doubles are sorted first in your hand and are worth watching — playing them early avoids getting stuck.
  • Late arrivals can scan in at any time and will be seated on the next deal.
  • If a player disconnects during their turn, it is automatically skipped after a few seconds.
  • Tap the top bar on the display to toggle fullscreen.

How it works

  • script.js builds and shuffles the needed domino sets, deals hands, resolves plays, scores rounds, and broadcasts snapshots.
  • domino-renderer.js renders the same SVG dominoes for both the table and the phone controllers.
  • The display waits for at least two connected players and seats late arrivals on the next deal.
DocumentationServer TelemetryServer StatsServer HTTP LogServer WebSocket Log