matchedCells fill in automatically as your applied clues close in.
Case status
0
Clues applied
0
To apply
0
Relations
About Deduction Deck
Why this project?
Most logic puzzle sites hand you a static puzzle and a blank grid, then leave you to figure out how to even start. The real skill isn't spotting the answer — it's building a chain of inferences you can see, trace, and undo. Deduction Deck reframes the puzzle as a physical act: you flip through cards, each one a clue, and every move you make is written into a visible reasoning ledger. It's a practice environment for structured deduction, not a visualization or an autoplaying solver.
What is it?
A card-based logic puzzle workbench. Each "case file" is a small matching puzzle (who lives where, who ate what, which hat belongs to whom). Clues are dealt as cards. You read a card, jot a deduction in the note line, and Apply it — which stamps the fact onto the solution grid and records the step in your ledger. Undo and redo let you walk your reasoning backwards. The grid fills in as your deductions close in, and the deck tells you the moment the case is solved.
How does it work?
Puzzle model: each case is a set of categories (e.g. Person, House, Drink) where every category has the same size, and the hidden solution is a perfect matching between them. Clues are pre-computed facts that are true of that matching.
Card state machine: the deck is an ordered (or shuffled) list of clue objects. A single current index drives which card is face-up. Prev/Next move it; Shuffle randomizes the order of the not-yet-applied clues.
Application: when you click Apply, the card's fact is merged into the grid state (each grid cell is unknown / value), the card is marked resolved, and a new entry is pushed to the ledger. Applying a card that contradicts an already-filled cell is blocked with a warning.
Undo / redo: a history stack of immutable snapshots of the grid + applied set + ledger. Undo pops to the previous snapshot; redo walks forward. Both rebuild the UI from the restored state.
Win detection: after each apply, if every cell in the grid holds a value and there are no contradictions, a win banner appears with the full solution.
All data is stored in memory (and mirrored to localStorage per case so a refresh doesn't wipe your work). No server round-trips, no network calls.
How to use it
Pick a case from the Case file dropdown.
Read the face-up card. Jot a short note (optional) in the ✎ field.
Click Apply ✓ to commit that fact to the grid, or Mark ✎ to just record the note as a ledger entry.
Use Prev / Next to flip through the deck; Shuffle reorders the remaining clues so you have to hunt for the useful ones.
Keep an eye on the deduction ledger on the left — it's your chain of reasoning, newest first.
If you misfire, use the undo / redo arrows at the top of the ledger (or press Ctrl+Z / Ctrl+Shift+Z).
Reset clears the case and deals a fresh deck.
Fill the whole grid without a contradiction to win. The banner shows the complete matching.