{"slug": "how-information-theory-saved-my-word-game", "title": "How information theory saved my word game", "summary": "A developer building a word game based on deduction discovered that generating puzzles solvable by pure logic was unexpectedly difficult, with the generator producing fewer than a hundred deducible boards from a vast combinatorial space. The challenge led to an encounter with Claude Shannon's information theory, revealing that the game's core problem mirrors an open question in communication theory.", "body_md": "Information theory · word games\n\n# The number nobody knows\n\nSometimes the medium and the message have a more complicated relationship than\nexpected. “B as in Bravo.” You’ve done it: spelling a word down a bad phone line,\nreaching past the letters for whole words, because *B* and *D* and\n*P* all blur into the same mush the moment the line frays.\n\nThat is not a quirk of bad reception. It is one of the deepest ideas in modern\ncommunication, performed by a human in real time, the same trick that keeps a\nspacecraft’s signal legible across millions of kilometres of noise. Marshall McLuhan\ngets the credit for *the medium is the message*, but Claude Shannon had\nbeaten him to a colder version of it years earlier: to a machine moving your words,\nthe meaning doesn’t matter at all; only the medium does, and which of its signals\ncan be told apart. *Bravo* and *Delta* survive a bad line;\n*B* and *D* don’t. You sorted that out by ear, without a flicker of\nthought. Push the same instinct to its limit (how much can you force through a noisy\nchannel and still be understood with *perfect* certainty?) and you walk\nstraight into a question Shannon posed in 1956.\n\nI didn’t arrive there as a mathematician; I’m not one. I came from the other direction entirely: I was trying to build a word game that uses deduction instead of clues. Something I expected to be simple.\n\nLet me tell you how the seemingly simplest thing I’ve ever shipped turned out to be balanced on one of the oldest open problems there is.\n\n## The “simple” thing\n\nHere is the whole game. A half-finished crossword grid. A queue of letters waiting to be placed. You’re served a letter, you tap the cell it belongs in, and you keep going until the grid is full.\n\n## One rule\n\nThe thing I wanted out of it seemed almost too small to bother stating: the puzzle should never make you guess. No moment where you’ve done everything right, the logic runs dry, and the game just wants you to pick a cell and hope. Every letter placeable by reasoning alone.\n\nThat struck me as the easy part: it’s a crossword, so I figured the hardest part would be building a good dictionary and curating the crosswords. I would like to go back and warn that version of me...\n\n## The wall\n\nThe dictionary took months. When it was finally good, I did the obvious thing: I pointed the generator at an empty folder and asked it for a few thousand boards to sift through. Fill a grid with real words, hide some, hand the rest back one at a time, keep only the boards a person could finish by pure logic. I’d spend my evenings curating the haul.\n\nIt made about forty. Then it stalled, spinning up board after board and discarding every one, because almost none came out deducible. After a few late nights, rewriting the generator, rethinking the problem, it never got past a hundred.\n\nThat stopped me cold. A five-by-five grid that has to spell real words across and\ndown is a combinatorial ocean.\n**The space of possible boards is beyond human understanding, but my generator\ncouldn’t find a hundred a person could solve.**\n\nThis wasn’t a speed problem I could optimise away. It was a wall, and it asked a\nquestion I couldn’t answer: could deducible boards really be *that* rare,\nonly a thin scatter of them playable? Had I misjudged the configuration so badly\nthat the game I’d dreamed up simply couldn’t exist? For a few bad days I believed\nthe project was dead, not hard, not slow, but *impossible*, my own generator\ninsisting that the open field I had imagined was nothing but a maze of dead ends.\n\nWhat gave me a glimmer of hope, just enough to keep pushing forward, was how little separated the boards it threw away from the ones it kept. The same grid, the same served letter, and a single uncovered tile is the whole distance between a guess and a certainty. Maybe my view of the problem was the problem.\n\n## It wasn’t a bug\n\nFor weeks I hunted it like a bug: a flaw in the generator, a dictionary too thin, a stripping pass too greedy. It was none of those.\n\nIt was the thing from the bad phone line at the top of this page (a\n**communication** problem, old and famous), and I’d been too far down\namong grids and dictionaries to recognise the shape of it. A puzzle is a channel:\nI’m the sender, the player is the decoder, I transmit a letter and they have to\nrecover which cell I meant.\n\nOrdinary crosswords are *noisy* channels. The decoder is usually right, and\nwhen they aren’t they shrug, backtrack, and fix it. A little confusion is fine\nthere; in an everyday crossword it is half the fun. But I had promised something\nstricter than usually right. I had promised *never* wrong, and never is not a\ntighter setting on the same dial. It is a different machine.\n\n## Confusability\n\nHere is the object I’d been groping toward in the dark. Draw a dot for every open\ncell; draw a line between two dots whenever those cells could take the same served\nletter, whenever they’re *confusable*. That graph has a name: the\n**confusability graph**. And a puzzle is deducible exactly when the\nopen cells form an **independent set**: dots with no line between any\ntwo of them. No confusable pairs. No coin flips. The exact shape of the rule I’d set\nmyself, drawn in a language I didn’t know existed.\n\n*“B as in Bravo”* is the same idea in human form, and by a fun quirk of\nhistory the phonetic alphabet it comes from was finalised in **1956**, the very\nyear Shannon published the problem. More than half a century of mathematics was\nalready sitting there, waiting for me. I could tell whether a finished board was\ndeducible; what I could not yet do was build one that way on purpose. To learn how,\nI first had to understand what Shannon had actually found.\n\n## Five beats four\n\nShannon had worked out the shape of this decades ago, on the simplest case anyone could draw. Picture five signals on a clock face, each one so close to its two neighbours that the line could smear them together. Send them one at a time and you can safely use only two: pick a pair that aren’t adjacent and nothing you transmit can be mistaken for anything else. Two out of five. A small, tidy, disappointing number.\n\nWhat Shannon noticed is that you do much better if you stop sending the signals one\nat a time and bundle them, treating a whole sequence as one message. Sent one at a\ntime, two transmissions give you 2 × 2 = 4 messages that can never be confused.\nBundle the pair and choose them well, and you can carry five. (The fifth fits\nbecause two bundles may share a confusable signal in one slot as long as they stay\nclearly apart in the other: a signal too risky to use alone is safe with a partner.)\nAnd the gain compounds. Ten signals sent one at a time give two to the tenth, 1,024\nsafe messages; bundled, they give 3,125. So the number of safe messages multiplies\nby 2.236 with every signal you add, not by 2. Its exact value is the square root of\nfive (**√5 ≈ 2.236**).\n\nBring it back to the board. A deducible puzzle is a set of open cells with no\nconfusable pair among them, and the safe messages on the clock are the same\nstructure: an **independent set** in the confusability graph. The\ndifference is only scope. I needed a single board to come out safe; Shannon wanted\nthe best multiplier the channel can hold as the bundles grow without limit, and he\ngave it a name, its **capacity**.\n\n## The flashlight\n\nEvery standard use of this math runs one direction: you are handed a fixed graph and\nasked to find the independent set hidden inside it, or to bound how large it could\nbe. That is a detector, and a better detector was no help to me, because my\ngenerator was still producing boards blindly and throwing nearly all of them away. I\ndid not need to *find* an independent set inside a board I was stuck with. I\nneeded to *grow* one: to build the board so that its open cells were an\nindependent set from the very first letter, and to refuse to lay down any letter\nthat would break it.\n\nThe generator still rolls dice; I never found a purely deterministic way to build a deducible board. But every roll is loaded. At each step it looks at the confusability graph taking shape under the board and weighs every choice against any move that would add an edge: a served letter with two possible homes, two open cells that could take the same tile. It reveals the one square that breaks a tie, favours the fill that leaves the fewest confusable pairs, and abandons any branch that cannot be saved. Shannon’s structure stops being a test you run at the end and starts steering the build from the first move.\n\nFinally the boards came in the thousands. There were still tight spots where I had to raise the retry limit, loosen a timeout, or reseed the generator, but it runs reliably enough that there is now a library of more than 9,000 playable puzzles, about ten years of dailies, already lined up.\n\n## The number, re-seen\n\nI had the title of all this backwards. *The number nobody knows* is not some\nfar-off constant at the frontier of mathematics; it lives right here, on every\nboard, in miniature. Every move in the game is a tiny question with one numbered\nanswer: which cell does this letter belong in? Almost always the surrounding words\npin it down and you answer without thinking. But let two cells both fit the served\nletter, both spelling real words, and suddenly there are two answers with nothing on\nthe board to choose between them. For that instant the right cell is genuinely\nunknowable: not hard or slow to work out, but impossible to work out from the letter\nalone. A number nobody knows. The cure is the oldest move in communication, the one\nyou already make spelling your name down a bad line: add context. Uncover one more\ntile, settle one more crossing word, and the unknowable snaps back to a single\nforced cell.\n\nAlfred North Whitehead once said, “Seek simplicity and distrust it,” a lesson I seem destined to relearn countless times. You, on the other hand, get to trust it completely: a letter, a cell, and never once a guess.\n\nIt’s a real game, [Motplot](https://motplot.app). Give it a try if you’re\ninterested.", "url": "https://wpnews.pro/news/how-information-theory-saved-my-word-game", "canonical_source": "https://motplot.app/helloworld", "published_at": "2026-06-28 21:22:49+00:00", "updated_at": "2026-07-01 07:29:42.637794+00:00", "lang": "en", "topics": ["artificial-intelligence", "machine-learning"], "entities": ["Claude Shannon", "Marshall McLuhan"], "alternates": {"html": "https://wpnews.pro/news/how-information-theory-saved-my-word-game", "markdown": "https://wpnews.pro/news/how-information-theory-saved-my-word-game.md", "text": "https://wpnews.pro/news/how-information-theory-saved-my-word-game.txt", "jsonld": "https://wpnews.pro/news/how-information-theory-saved-my-word-game.jsonld"}}