WHO HAD WHAT← WIKI
Who Had What screenshot

Daily Brains · one logic-grid case a day: who wore what, who came when, who brought which. Gentle on Monday, fiendish on Sunday.

Who Had What is the logic-grid deduction puzzle in Daily Brains (/daily), in the tradition of the classic zebra puzzle. Each day sets one case: a small cast of invented characters in a scene (a picnic, a heist crew, a garage band, a village bake-off, a haunted manor and two dozen more) and two or three things to pin on each of them, such as a colour, a time, a pet, a seat or a prize. A short list of clues narrows it down to exactly one answer. You work it out on the classic stepped grid, marking each pairing X (not a match) or O (a match) until every person has exactly one of everything.

▶ PLAY WHO HAD WHATVERSION Aby John

STORY & LORE

How a case is made

Cases are generated offline by scripts/who-had-what/generate.mjs and shipped as a fixed book (public/gamedata/who-had-what/book.js). For each case the generator picks the day's scene, a cast with different initials, the categories and their values (ordered ones such as times, places and seat numbers take a consecutive run), and deals a random answer. It then adds true clues drawn from the clue types that weekday allows until exactly one answer is left, and finally strips every clue the answer can do without, so every clue on the page is needed. The answer is stored scrambled, so the page source does not give it away.

Rated the way a person solves

Every case is solved by a human-style solver that always reaches for the easiest technique that makes progress, and the case is kept only if the hardest technique it needed matches its weekday. Direct: plain is, is-not and either-or clues, the last gap in a row or column, an O clearing its row and column, and carrying an O across blocks. Clue reading: one relational clue (earlier or later, exactly n after, next to, one-and-the-other, all different) read against the grid. Chains: two things share no possible partner in some third category, so they cannot belong to the same person. Contradiction: try a mark, follow it through, and watch it break.

Checked twice

scripts/test-who-had-what.mjs re-solves every case with a brute-force solver written only from the clue rules, sharing no code with the generator. It proves each case has exactly one answer and that it is the stored one, that dropping any single clue lets a second answer in, that the technique rating still lands on its weekday band, that no day in the book repeats and neighbouring days never share a scene, that the weekly ramp rises from Monday to Sunday, that every value has a drawn icon, and that no clue text or file contains an emoji.

HOW IT PLAYS

The grid

The stepped grid pairs every category with every other once: the people against each category along the top band, then the categories against each other in the steps below. Tap a square once for X, twice for O, a third time to clear. With auto-cross on (the default, switchable in Settings), an O crosses out the rest of its row and column in that block; removing the O lifts those crosses again. Two O's in one row or column are ringed in red, because that can never be right.

Phones: zoom and swipe

On a phone the full grid is a map. When its squares are too small to hit reliably, tapping it zooms into that block, with full labels and squares of at least 46px; swipe or use the arrows to move from block to block, and the Grid button returns to the whole map. On Monday and Tuesday the whole grid is big enough to mark directly.

Clues

Clues sit in a paged card under the grid (two columns on wider screens) with small drawn icons beside every thing they name, and never scroll. Tap a clue to cross it off. Tap the Clues title to pull the card up over the grid as a drawer and read more at once. Notes such as 'The ovens are numbered from left to right' head the list when a scene needs them.

Checks, hints and scoring

A case starts at 1,000 points. Check marks every wrong X or O in red for 100 points. Hint fills in the next deduction your grid does not show yet, explains it and flashes the clue it came from, for 150 points (if you have a wrong mark, the hint points at that instead). Filling the people blocks with a complete but wrong answer costs 100 points each distinct time. The floor is 100. A clean solve (no checks, hints or wrong grids) earns the perfect bonus. Time is shown but not scored.

GALLERY

THE WEEK

DayDifficultySizeClue typesWhat it needs
MondayGentle3 people, 3 categoriesis, is not, either-orDirect marks only
TuesdayEasy4 people, 3 categories+ earlier/later, next to, exactly n afterOne relational clue read against the grid
WednesdaySteady4 people, 4 categories+ one-and-the-otherClue reading, more of it
ThursdayTricky4 people, 4 categories+ all differentA chain or one contradiction
FridayTough5 people, 3 categoriesall typesChains and up to two contradictions
SaturdayHard5 people, 4 categoriesall typesOne to three contradictions
SundayFiendish5 people, 4 categoriesall typesFour or more contradictions

SCORING

EventPoints
Start of the case1000
Check for mistakes-100 each
Hint-150 each
Complete but wrong answer-100 each distinct answer
Lowest possible score100

VERSION HISTORY

VERSION A2026-10-28
  • First release: one logic-grid case a day from a book of 224 (32 per weekday), 28 scenes, each case proven unique and minimal by an independent brute-force solver.
  • Stepped X/O grid with optional auto-cross, zoom-to-block and swipe on phones, paged clue card with drawn icons and a pull-up drawer, checks and hints that cost points, and an answer table at the end.