Color Match Rush

By (@bennyharyor) · · Games

Color Match Rush - image 1

with claude

Tech stack

  • Claude

Prompt

COLOR MATCH RUSH: full project build prompt
Build the complete, polished, ready-to-ship web game COLOR MATCH RUSH in one go. Do not stop to ask for approval along the way and do not split it into stages for me. Read this whole brief, build the entire project, test it yourself, fix what you find, and hand it back finished. At the end, tell me plainly what you tested and what you could not test.

Context and constraints
This is an entry for a community-vote contest on Prompted (prmpted.com). Voters open the link cold, usually on a phone, and decide in seconds. It must load instantly, be understood in one second, and be fun in the first 5 seconds.
Static files only: HTML, CSS, JavaScript. No build step, no framework, no external libraries, no backend, no accounts. It must work when index.html is opened from disk and on any static host.
One Google Font is allowed with a safe fallback. Everything else is code: CSS, canvas, WebAudio. No image or audio files.
Files: index.html (markup, CSS, UI), logic.js (all pure game logic, no DOM, loads in Node), share.js (canvas share card), test/logic.test.js (Node tests), and a _deploy folder at the end containing only what the live site needs.
Style for all text in the game and in comments: short, punchy, natural. Never use em dashes or en dashes anywhere.
The game
The Stroop color-word game. A color word appears written in a different ink color, for example the word BLUE drawn in red ink. The player taps the button that matches the ink color, not the word. Fast and addictive. 45 seconds per round.

Core rules
4 colors at the start: red, blue, green, yellow. Buttons are large solid color blocks in a 2x2 grid (thumb-friendly on mobile).
Each round shows one word in an ink color. About 80 percent of rounds are mismatched (word differs from ink) and 20 percent are matched, so the player cannot just read.
Correct: +10 points times the streak multiplier, and +0.5 seconds on the clock (cap the clock at 60).
Wrong: lose 3 seconds, the streak resets, the screen shakes and flashes.
Streak multiplier: x1 up to 4 in a row, x2 at 5, x3 at 10, x4 at 20, x5 at 30. Show it clearly.
Difficulty ramp by number of correct answers:
0 to 9: 4 colors.
10 to 24: adds orange and purple (6 colors, 3x2 grid).
25 and up: adds a RULE CHANGE twist. Every 8 rounds a loud, unmissable banner says "TAP THE WORD" for 4 rounds (the player matches the word's meaning instead of the ink), then flips back with "TAP THE INK".
The round ends at 0 seconds. No lives.
Controls
Mobile: tap the buttons. No double-tap zoom, no scroll, no accidental text selection. React on pointerdown, not click, for the lowest latency.
Desktop: click, or keys 1 to 4 (1 to 6 once six colors appear), mapped left to right, top to bottom. Show the key hints on the buttons on desktop only.
Modes
Daily challenge: the sequence comes from a seed based on the UTC date, so everyone gets the same rounds that day. Label it "Daily" and keep a separate personal best for it.
Free play: a random seed each time.
Toggle between them on the title screen.
Logic (logic.js, pure and tested)
Put every rule in pure functions that run in Node:

A seeded RNG (mulberry32 or similar) and a seed-from-date function.
nextRound(state, rng) returns { word, ink, mode: 'ink' | 'word' }, honouring the 80/20 mismatch rule, the color pool for the current progress, and the rule-change schedule.
answer(state, choiceColor) returns { correct, scoreDelta, timeDelta, newStreak, multiplier } and is correct in both ink mode and word mode.
rank(score) returns a title and a short line: under 150 "Colorblind Chaos", 150 to 349 "Warming Up", 350 to 599 "Sharp Eye", 600 to 899 "Rainbow Reflexes", 900 and up "Stroop Master". Tune the thresholds with the tests so a decent first round lands in the middle.
Stats: accuracy, best streak, average reaction time in ms, correct count.
node test/logic.test.js must verify: determinism by seed, the 80/20 split within tolerance over 2,000 rounds, no impossible round, correct scoring in both modes, the clock cap, the multiplier thresholds, the rule-change schedule, and rank boundaries. Print a clear pass or fail summary and run it after every change.

Look and feel (this is where votes are won)
Dark background with a vivid, modern look. Big, bold rounded type (for example "Lilita One" or "Baloo 2", with a system-ui fallback). A huge word in the center and huge buttons below.
The background reacts to the streak: a soft radial glow or hue shift that intensifies as the multiplier rises, and at x5 the whole page pulses subtly.
Correct: a satisfying pop on the button, a small particle burst in the ink color, the score ticking up with a quick scale bump, and floating "+10" or "x3!" text.
Wrong: a short screen shake, a red edge flash, a floating "-3s", and the clock bar blinking red. Keep it quick so the pace never stalls.
Clock: a thick bar across the top that drains smoothly and turns red and pulses in the last 10 seconds.
Word transition: the new word snaps in with a tiny scale animation under 120 ms. Nothing slows the player down.
Title screen: the logo "COLOR MATCH RUSH" with letters in rotating colors, the one-line rule ("Tap the ink color, not the word."), the Daily and Free play toggle, a big Start button, and the best score. On the very first play (remembered in localStorage) show a 3-second example.
Countdown: 3, 2, 1, GO before each round.
End screen: score count-up, the rank title, accuracy, best streak, average reaction time, personal best with a "NEW BEST" flourish, and the share buttons.
Respect prefers-reduced-motion by reducing shake and pulses. Add a Color-blind assist toggle that puts a distinct shape symbol (circle, triangle, square, diamond, star, hexagon) on each button and a matching small symbol under the ink word. Save the setting.
Audio (all WebAudio, no files)
A short tick or pop on correct whose pitch rises with the streak, on a pentatonic ladder so it always sounds good.
A low thud on wrong.
A soft whoosh on the rule change and a fanfare on a new personal best.
An optional quiet looping beat that speeds up slightly as the clock runs low.
A mute button, remembered. Audio starts only after the first tap and must work on iOS Safari.
Share, challenge and replay
Result card (share.js): a canvas-rendered image (1080x1350 and 1200x630) in the game's style with the title, score, rank, accuracy, best streak, the mode (Daily with the date, or Free play) and the URL. Buttons: Save image, Copy result text, Play again.
Copy text format (short, made for X): Color Match Rush: 1,240 pts, Rainbow Reflexes. 94% accuracy, best streak 23. Can you beat it? <url>
Challenge link: ?beat=<score> shows a banner on the title screen ("Beat 1,240") and, at the end of the round, says whether you beat it. The Copy text button includes this link.
Replay speed: from the end screen to a new round in one tap. No reload, no menu detour.
Quality, mobile and performance
Works from 360px width up with no horizontal scroll. Touch targets at least 72px.
60 fps on a mid-range phone. Use CSS transforms and one small canvas for particles. No layout thrash.
No console errors. The clock must not keep running while the tab is hidden.
Everything stored in localStorage is wrapped in try and catch, and the game works without it.
Open Graph and Twitter tags in the head with a good title and description, and a small inline SVG favicon.
Finish line: deliver all of this
The complete working game in the project folder, all tests passing, checked at 360px, 768px and desktop widths with no console errors.
A _deploy folder with only the files the live site needs, and the exact command to deploy it to Vercel (npx vercel --prod from inside _deploy). Do not try to log in or deploy yourself.
A Prompted post pack, ready to paste: a punchy title under 70 characters, a short caption (what it is, one surprising detail about making it, how to play), the tools list, a "prompt behind it" version of this brief cut to under about 1,500 characters plus 3 realistic follow-up prompts, and a 15 to 20 second screen-recording shot list.
A short honest report: what you tested and the results, and what you could not verify (for example real-phone feel and sound).
Working rules
Do not add features outside this brief without asking. If time is tight, cut breadth, never quality.
Do not claim anything works until you have run it. If you cannot see or hear something, say so.
Keep the game fun above all. If a rule feels slow or unfair when you play it, fix it.

Explore more on Prompted

Loading