# RCWeb Symbol-Snap Control

The **Symbol-Snap Control** app (`app/symbol-snap-c`) is the phone companion for `app/symbol-snap`. Every controller in the room receives the same eight-symbol card and competes to tap the one symbol that also appears on the main display.

![icon](pwa-512x512.png "Symbol-Snap Control Icon")

## What it does

- **Shared card competition**: Every connected phone displays the same controller card so the race is about recognition speed, not hidden information.
- **Tap-to-score input**: Players tap symbols directly on the card canvas and the first correct choice wins the point.
- **Personal identity and feedback**: Each controller keeps a local player name, receives targeted success or miss feedback, and shows its own score plus the current leader.

## How it works

- **Thin controller, smart viewer**: The controller only announces its presence, sends tap attempts, and renders the viewer-provided card layout.
- **Sprite-sheet rendering**: It loads the shared `/symbol-snap/symbol-snap.png` sprite sheet and draws the symbols onto a `<canvas>` with the same random rotation, scale, and circular placement chosen by the main viewer.
- **Persistent sync loop**: Controllers re-announce themselves every few seconds so they can join a room after the display is already live or recover cleanly after a reconnect.
