Daily Scramble

By (@yhungharyor) ·

Daily Scramble - image 1

just brought a game to life with chatgpt

Tech stack

  • ChatGPT

Prompt

TO: Production desk FROM: The Editor RE: THE DAILY SCRAMBLE, a word game that looks like a real newspaper DEADLINE: Today. Print-ready.

Read this once, then go and make it. I don't want questions halfway through and I don't want a draft to approve. I want the finished edition on my desk, tested, with an honest note on what you checked and what you couldn't.

FRONT PAGE (what it is)
A daily word puzzle dressed as a broadsheet. Letters arrive scrambled. You rebuild the word. Five words an edition, getting harder, same five for everybody that day, plus an endless Rush mode for people who want more. Quick to understand, hard to stop, and the result is something people want to paste into a group chat.

The first screen has to read as a newspaper in under a second. If someone glances at it and thinks "app", we failed.

THE LOOK (typeset it, don't decorate it)
Newsprint. Ink. One spot of red. Nothing glows, nothing glass, nothing neon, nothing pastel.

Paper: a warm, slightly yellowed newsprint (#E9E0CB) with a fine fiber texture and a faint uneven fold crease down the middle, all generated in code. Edges of the page curl a tiny bit and cast a soft shadow on a dark desk behind it.
Ink: near-black (#1B1A17) with a hint of ink bleed on large type (a very slight blurred duplicate under the glyphs). One spot color only: newspaper red (#C8281E), used for the masthead rule, the headline kicker, hints and mistakes.
Masthead: "THE DAILY SCRAMBLE" in a heavy blackletter or old-style display face (try "UnifrakturCook" or "Playfair Display Black", with a serif fallback), flanked by little ear boxes ("EDITION No. 31" and today's date and a fake weather line like "Chance of anagrams"). A double rule beneath.
Type: headlines in a bold serif ("Playfair Display" or "Old Standard TT"), body and labels in a classic text serif, tiny all-caps sans for datelines. Set copy in narrow columns with thin vertical rules between them.
Halftone: any image-like element (a little illustrated hand, a magnifier, an ink stamp) is drawn as a halftone dot pattern in code. Decorative filler between sections should look like real newspaper filler: ornaments, "ADVERTISEMENT" boxes with a funny fake classified ("WANTED: one missing vowel. Reward."), tiny weather and market boxes.
The letter tiles: each tile is a piece of metal type sitting in a wooden type tray: a slightly raised dark block with a reversed (mirror) tiny letter hinted at its base, and the readable letter on top in cream. Letters you place into your answer line appear as ink printed directly on the paper, stamping in with a quick pressed-ink bloom.
Motion: pages and sections move like paper. Edition changes flip like a folded sheet. The headline types in letter by letter. Shuffling a tray shakes the type blocks. Keep every motion short and physical.
THE PUZZLE DESK (how it plays)
The daily edition. Five words in order, getting longer and harder:

Story	Letters	Role
Brief	4	warm up
Item	5	easy
Column	5 or 6	medium
Feature	6 or 7	hard
HEADLINE	8	the finale, worth double
The scrambled letters sit in the type tray. Build the word in the answer line by tapping letters (or just typing on a keyboard). Backspace removes one, tapping a placed letter takes it back. Press Enter or complete the word to submit. A correct word gets a bell and a stamp of "FILED". A wrong full word shakes the line and prints a small red "SPIKED" mark, with no penalty beyond the lost moment.

Any valid answer counts. If the letters spell a different real word from the list, accept it (anagram pairs like "stale" and "least" are both right).

Helps, each printed in the margin as a "wire service" button:

SHUFFLE: free, rearranges the tray.
TIP-OFF: reveals the next correct letter in place. Costs 5 points. Marked with a red dot on that word in the result.
KILL STORY: skips the word for a 10 point penalty and shows the answer. Marked with a red cross.
Scoring: 10 points per letter, a time bonus that shrinks over 60 seconds per word (up to 20 points), minus help costs. The headline word counts double. Show a running "circulation" (score) in the corner.

Rush mode: 90 seconds on the press clock. Words come one after another, starting short and getting longer, as many as you can file. Each correct word adds 3 seconds. No helps except Shuffle. Score is words filed first, then points.

Modes: Daily Edition (same five words for everyone, based on a seed from the UTC date, one official attempt per day shown as "Filed", with a replay for fun that doesn't overwrite the record) and Rush (random seed).

Controls: tap, or type. Respond on pointerdown. Space shuffles, Enter submits, Backspace deletes, Tab triggers the tip-off. No double-tap zoom, no scroll, no text selection.

Ranks (by total score for the daily): "Paperboy", "Copy Editor", "Reporter", "Columnist", "Editor in Chief". Tune the thresholds so a decent first daily lands at Reporter.

THE WORD ROOM (content you must get right)
Write lexicon.js with a curated list of at least 900 common English words, lowercase a to z only, 4 to 8 letters (roughly 150 four-letter, 200 five-letter, 220 six-letter, 190 seven-letter, 140 eight-letter). Everyday words anyone knows: no proper nouns, no slang that needs explaining, no abbreviations, nothing offensive, nothing hyphenated. Dedupe it. Also export a lookup so any anagram of a placed set of letters can be validated against the list.

The scramble must never equal the original word and should move most letters from their starting place (reject scrambles where more than a third of letters stay put).

THE PRESS ROOM (how it's built)
Static files only. No libraries, no build step, no backend, no accounts. Works from a double-clicked index.html and on any static host. No image or audio files: paper, ink, halftone and type are drawn in code (CSS and canvas). One or two Google Fonts are fine with proper fallbacks.

Files:

index.html: page structure, styles, screens.
lexicon.js: the word list.
engine.js: every rule as pure functions, no DOM, loads in Node.
inkwork.js: procedural paper, halftone, ink-bleed and stamp drawing.
sound.js: synthesized audio.
frontpage.js: the share image.
test/engine.test.js: Node tests.
engine.js provides a seeded generator and the date seed, edition numbering (Edition No. 1 is 1 October 2026, counting days from then), dailyWords(seed) choosing one word per slot with no repeats, scramble(word, rng), isValid(letters, guess), scoring and time bonus, the help costs, the rush-mode word schedule and timer, and rank(score).

The tests must prove: the same date gives the same five words everywhere, every daily set has the right lengths in order, no scramble equals its word or leaves more than a third of letters in place, every list word is clean (a to z only, length 4 to 8, unique), anagram answers are accepted, scoring and help costs are right in every case in this memo, edition numbers are right across month boundaries, and rank boundaries work. Run them after every change.

THE SOUND DESK (generated, no files)
Key clack: a short noise click with a low thump, slightly different each press, like a typewriter.
Filed: a carriage-return bell, a clear single "ding".
Spiked: a dull, short stamp thud.
Tip-off: a soft telegraph blip.
Edition complete: a printing press rumble that builds up and a flurry of paper flips.
Rush clock: a quiet, steady typewriter rhythm that speeds up in the last 15 seconds.
Mute button, remembered. Audio starts only after the first tap and must work on iOS Safari. A small haptic tick on a correct word if the device supports it, with a toggle.
CIRCULATION (sharing)
The front page card: drawn on a canvas as a newspaper front page. Masthead, today's date and edition number, a big headline that reads from the result, for example "LOCAL READER FILES ALL FIVE IN 2:14" or "READER SPIKES THREE, VOWS TO RETURN", a subhead with the rank, a column of five lines (one per word) showing blank squares and marks for clean, tipped-off or killed (without revealing the answer), a halftone illustration, the score as "circulation", and the site address in the footer. Output 1080 by 1350 and 1200 by 630. Buttons: Save image, Copy result text, Play again (or Try Rush).
Copy text (spoiler free): The Daily Scramble No. 31: 5/5 in 2:14, rank Reporter ⬛⬛🟥⬛⬛ <link> where each square marks one word (black clean, red used a help, a cross for skipped).
Challenge: ?ed=<n>&beat=<score> opens that edition and shows a "Beat 340" tag.
Streak: a small "days in a row" counter stored locally on the title page.
THE FINE PRINT (what makes it feel finished)
Fully usable at 360 px wide and up, portrait and landscape, no horizontal scroll, tiles at least 48 px, comfortable type size. No console errors. Pause timers when the tab is hidden.
Respect prefers-reduced-motion and keep text contrast high (this is black on paper, so it should be easy).
Everything in localStorage goes through try and catch, and the game still works without it.
Page title, Open Graph and Twitter tags, and a tiny inline SVG favicon shaped like a folded newspaper.
Every message in the game reads like a snappy newsroom: short, dry, witty. Never use em dashes or en dashes anywhere, including comments.
SIGN-OFF (what to hand back)
The finished game in its folder, tests green, checked at 360, 768 and desktop widths with no console errors, with screenshots of the front page (title), a puzzle mid-solve, and the result card.
A _deploy folder holding only what the live site needs, plus the exact command to deploy it to Vercel from inside that folder as a new project named daily-scramble. Don't log in and don't deploy it yourself.
A short write-up for sharing: a punchy title under 70 characters, a caption of a few lines, a tools list, this memo condensed to under about 1,500 characters, three believable follow-up prompts, and a 15 to 20 second screen-recording shot list.
An honest report: what you tested, what passed, and what you couldn't check (real-phone feel, sound, how the word list reads to a human).
No extras I didn't ask for. If the clock runs short, cut breadth, never polish. Don't tell me it works until you've run it. And if the page ever looks like an app instead of a newspaper, that is the first thing to fix.

-- The Editor

Explore more on Prompted

Loading