Didn't Do It

About

Lees dit in het Nederlands

Didn't Do It is a deduction puzzle: a grid of names, a handful of clues that each rule some of them out, and one name left standing. It is made and run by one person, from the Netherlands, in Dutch and English.

Where the idea came from

Most deduction games hand you a filter: tick a box and the computer removes the rows that no longer fit. That is a database query wearing a hat — the machine does the reasoning and the player does the clicking. This one refuses to. The clues are true, they are consistent, and they are guaranteed to end on exactly one name, but crossing names out is yours. The only thing the game counts is how many are still standing.

The name comes from how the clues are worded. Nothing ever tells you who did it. Every line tells you who didn't.

How a puzzle is made

Nothing is hand-authored. Each puzzle is generated from a seed — the date and difficulty for a daily dossier, the track and rung for free play — so the same seed always produces the same case, and everybody plays the identical grid on the same day.

The generator builds a cast from name pools of roughly seven thousand distinct full names per language, drawn in matched pairs so a first name and a surname come from the same naming tradition instead of being shuffled together. It then picks a chain of clues where each one cuts the field roughly in half — or, on the marathon track, shaves a little off many times over — and it only accepts a chain when the last clue leaves exactly one name and no clue in the chain is redundant. A chain it cannot build soundly is thrown away rather than softened.

The clue types themselves are graded by how hard they are to use, not by how much they eliminate: reading a first letter is easy, counting the vowels in a full name is not. That grading is what makes an easy 100-name grid a patience exercise and an extreme 30-name grid genuinely difficult.

Names in the game

Every name in every grid is generated from those pools. They are not real people, and no grid is based on anyone. The pools are grouped by naming tradition — a Dutch, Turkish or West African name, never a claim about a person — because a cast that reads like an actual population register is more interesting to search than a shuffle, and because the origin of a name is itself one of the clue types.

How it is built

A small React app with no backend for the puzzle itself: the generator runs in your browser, which is why it works offline once loaded and why no puzzle data is ever sent anywhere. Accounts, best times and cross-device progress run on Cloudflare (Workers and a D1 database in Western Europe). Text is set in Atkinson Hyperlegible, self-hosted rather than pulled from a font CDN, because a clue may say "no L in the name" while a grid shows a capital I — in most typefaces those are the same stroke, and the puzzle should not be lost to typography.

Contact

Questions, a clue that reads wrong, a bug, or a request about your data: [email protected]. Mail in Dutch or English; both get an answer.

Start a case