Shape Matching Game is a deterministic five-pair browser puzzle that pairs five named original geometric forms with their same-ID silhouettes for an exact 1,000-point finish. The complete task is to pair every named piece (Arch, Diamond, Hexagon, Chevron, and Capsule) with its same-ID silhouette, and the only way to add points is to make every correct same-ID pair before the run terminates. Each successful match removes the pair from play, clears the current selection, and adds 200 points, so the score formula is simple: 200 multiplied by the number of pairs matched. One distinct wrong source-target combination is recoverable, a repeat of that same wrong pair is a strict no-op, and a second distinct wrong combination closes the board and ends the run. Pointer, click, and keyboard inputs all flow through the same reducer, so the touch experience is identical to the desktop experience without HTML5 drag-and-drop dependency. The five forms are rendered with local SVG and CSS tokens, never imported as emoji or photo artwork, and the entire pipeline runs on the device with no account, upload, or AI classification step.

Score Formula: 200 Per Pair, 1,000 for Five
The Shape Matching Game score is a direct multiple of correct pairs, not a continuous line of points awarded on time, speed, or streak. The published rule is 200 points per correct same-ID pair, and the terminal score after the fifth successful pair is exactly 1,000. There is no bonus for fast play, no penalty for slow play, no per-second timer, and no partial credit for partial work. A correct match adds 200; an incorrect match either registers as a recoverable error or terminates the board depending on history.
Worked example of the score formula across the full route:
- Pair 1 matched: 200 x 1 = 200 points
- Pair 2 matched: 200 x 2 = 400 points
- Pair 3 matched: 200 x 3 = 600 points
- Pair 4 matched: 200 x 4 = 800 points
- Pair 5 matched: 200 x 5 = 1,000 points
After the fifth pair, the score freezes at 1,000 and every input is rejected so the terminal state is preserved even if an action is invoked programmatically. The shared game shell supplies best-score storage alongside Restart, status, keyboard guidance, and the Boss Key.
The Five Original Forms and Default Board Order
The Shape Matching Game board shows two visible columns: a source column on the left listing the five named pieces, and a silhouette column on the right listing the five named targets. Each row in the source column has exactly one equivalent in the silhouette column, identified by a same-ID signature rather than by position, color, or visual texture alone.
The five original forms are:
- Arch
- Diamond
- Hexagon
- Chevron
- Capsule
The default board is deliberately laid out in different orders for the two columns, so a literal row-by-row guess does not solve the run:
- Default source order: Arch, Diamond, Hexagon, Chevron, Capsule
- Default silhouette order: Hexagon, Capsule, Diamond, Arch, Chevron
This mismatch means a row-by-row guess produces only wrong pairings; the first wrong pair is recoverable, but a second distinct wrong pair closes the run long before reaching 1,000. The five source IDs and five target IDs share the same five names, and every correct match requires reading the named ID on both sides and the outline shape rather than relying on position alone. All five shapes are rendered as local SVG with CSS tokens, so the appearance does not change between runs or between devices.
Three Input Paths Share One Reducer
The Shape Matching Game offers drag, click, and keyboard routes that all call the same reducer. This matters because it keeps the rule set identical regardless of input device: a correct match on a touch screen uses the same logic as a correct match on a desktop with number keys, and the published test suite can audit one rule set rather than three.
| Input path | How a source is chosen | How a target is chosen |
|---|---|---|
| Drag (pointer) | Press a source piece | Release over a silhouette |
| Click (mouse or touch) | First click on a source | Second click on a silhouette |
| Keyboard | Keys 1, 2, 3, 4, 5 (left to right) | Keys 6, 7, 8, 9, 0 (left to right) |
Pointer input uses pointer events with a target hit test, not HTML5 drag-and-drop, so touch and mouse share the same logic without a desktop-only drag dependency. Keyboard input uses number keys 1 through 5 for the five visible source positions and number keys 6, 7, 8, 9, and 0 for the five visible target positions in left-to-right order. Selecting an already matched source, selecting an unknown ID, or reselecting the current piece is an atomic no-op that does not change score, matched count, or error count.
Play the Shape Matching Game to 1,000 Points
Play a clean run of the Shape Matching Game with this five-step route. The same steps apply whether you use a touch screen, a mouse, or the number row on a physical keyboard.
- Open the Shape Matching Game tool in your browser. The board starts with the default source order on the left (Arch, Diamond, Hexagon, Chevron, Capsule) and the default silhouette order on the right (Hexagon, Capsule, Diamond, Arch, Chevron).
- Choose your input path. Use pointer drag on a touch device, two-click selection on a desktop mouse, or keys 1 through 5 for the source column and 6, 7, 8, 9, 0 for the target column on a keyboard. All three routes call the same reducer.
- Pair Arch with its same-ID silhouette. Use position 1 on the keyboard or the top-left piece on the source column. Match by outline and name, not by row index.
- Repeat for Diamond, Hexagon, Chevron, and Capsule in any order. Each successful same-ID pair adds 200 points and removes that pair from the board, so the source and target columns shrink by one row each.
- Complete all five pairs for an exact 1,000-point finish. The board then locks and every input is rejected to preserve the terminal state.
The One Recoverable Mistake and the Deadlock
The Shape Matching Game's defining rule is the one recoverable mistake. Pairing a source with a different target stores the source-target signature as a recoverable error, repeating that exact wrong pair is a strict no-op, and a second distinct wrong pair closes the board. The recoverable error is identified by a source-target pair rather than by source alone, so a single source paired with two different non-matching silhouettes counts as two distinct wrong attempts and locks the run.
| Action or mistake | Effect on board |
|---|---|
| First distinct wrong source-target pair | Stored as a recoverable error signature |
| Repeat of the same stored wrong pair | Strict no-op, no state change |
| Second distinct wrong source-target pair | Layout closes, all inputs disabled |
| Unknown ID selection | Atomic no-op, score and count unchanged |
| Already matched source | Atomic no-op, score and count unchanged |
| Already matched silhouette | Atomic no-op, score and count unchanged |
| Reselecting the current source | Atomic no-op, score and count unchanged |
Pairing Arch with Hexagon counts as a first distinct wrong attempt, and pairing Arch with Capsule counts as a second distinct wrong attempt, so the run closes. Repeating the exact same wrong pair (for example, Arch-to-Hexagon twice) is a strict no-op rather than a second distinct mistake, so a player can test the same wrong pair without immediately losing the run. This rule is enforced by a reducer guard so the terminal state is preserved even if a wrong action is invoked programmatically after the layout closes.
Shuffle, Restart, and the Terminal Freeze
The Shape Matching Game offers three explicit board controls beyond the input paths: Restart, Shuffle layout, and the terminal freeze. Each control has a precise effect that the published rules describe separately.
Restart restores the current layout with zero pairs, no current selection, zero matched count, and any reasonable error state reset for that specific board. Restart does not produce a new board; it replays the same seed and the same five shape IDs so the run can be repeated against the exact same fixture.
Shuffle layout is the only way to produce a fresh board. It runs a pure seeded Fisher-Yates permutation with an injectable random source and reorders both columns independently. It never runs implicitly during render or as a side effect of an effect, so the same seed always produces the same column order. Eight seeds are independently audited for exact reproducibility, five unique source IDs, five unique target IDs, and a complete route to 1,000. The seed label stays visible on the board so a player can confirm which permutation they are playing.
The terminal freeze applies at two states: completion (all five pairs matched for 1,000 points) and deadlock (two distinct wrong pairs stored). At either terminal state, every source, target, and shuffle action is disabled, and the reducer guards preserve the terminal state so an invoked action cannot unlock the board. A new run requires Restart for the same layout or Shuffle for a new seed. The shared game shell also supplies status, keyboard guidance, best-score storage, and a Boss Key for a quick exit.
What Independent Tests Audit in the Shape Matching Game
The Shape Matching Game ships with an independent test suite that does not ask the product for expected targets. Instead, the tests own a literal five-pair mapping and audit the game against that fixed fixture. This separation matters because the test fixture cannot drift from the production logic and the production logic cannot drift from the test fixture; both must match a third list that neither one writes.
The independent tests verify, at minimum:
- Both default column orders (source order and silhouette order) match the published fixtures exactly.
- Every 200-point step is awarded at the correct matched-count threshold for one, two, three, four, and five pairs.
- The exact 1,000-point terminal score on the fifth successful pair.
- Arch-to-Hexagon and Arch-to-Capsule count as two distinct losing attempts that lead to deadlock.
- Duplicate error handling: a repeat of the same wrong source-target pair is a strict no-op rather than a second distinct mistake.
- Illegal and matched-item atomicity: unknown ID, already matched source, already matched silhouette, and reselecting the current source are all atomic no-ops.
- Eight seeded Fisher-Yates permutations reproduce the exact same column order on every run.
- Restart returns the same layout with zero pairs, no selection, zero matched count, and zero errors.
- Terminal freezing blocks every input on completion or deadlock and survives programmatic action invocations.
For readers who want a side-by-side comparison that also emphasizes outline reading, the Shadow Matching Game guide for reading outer shapes to 1,000 covers a separate matching game with a different set of original specimens and a different pair-identification rule, while the Shape Matching Game focuses on the named-form-to-named-silhouette pairing route audited by the independent five-pair mapping.
For a deeper look, see How to Choose Your Next Step in Shape Rotation Match.