Cocktail Mixing Game is a fictional zero-proof bartender game that scores up to 1,000 points across five rounds using the formula max(0, 200 minus round(total deviation × 10)). Each round shows one three-part ratio target, and you set three invented streams — Lumen Drop, Cloud Ribbon, and Comet Fizz — to integer amounts from 0 through 10 before pressing Shake. The interface then reports the live reduced ratio, the percentage-point gap on every stream, the total proportional deviation, the projected round score, and your running total. A mix passes when total deviation is no more than 6.00 percentage points, so a perfect 0.00 match scores 200 per round. Five perfect rounds therefore total exactly 1,000 points, which is the documented maximum. Equivalent proportions such as 2:3:5 and 4:6:10 share the same reduced ratio and score identically, while an all-zero submission is rejected. The five round names and the three stream names are original game fixtures rather than real cocktail ingredients, and the page contains no alcoholic ingredient, serving advice, or health guidance.

What the Three-Stream Targets Reveal
The active round always surfaces exactly one three-part target and nothing else, so the only data you have to solve against is the brief in front of you. Later round names and their target values are not listed in the surrounding page copy; the game holds them back so each challenge is independent. Lumen Drop, Cloud Ribbon, and Comet Fizz are invented interface streams, and the five round names are original game fixtures rather than beverage recipes. The page contains no alcoholic ingredient, serving advice, preparation guidance, health claim, or safety recommendation, so the bartender framing is decorative.
Each stream slider accepts any integer in the inclusive range 0 through 10, including zero on any individual slider as long as the three values together are not all zero. The submitted integers are the actual values judged by the scoring function — there is no second hidden solution field. Range controls keep their native arrow-key behavior, and pointer and touch input feed the same controlled values, so mouse, finger, and keyboard all converge on the same numbers. The Shake button uses the same pure judgment function whether you activate it with a click, Enter, or Space, so the result is reproducible from the visible target and the sliders you set.
Because the judge works on shares rather than raw totals, scaling up a correct answer still passes. The example given in the product contract is that 2:3:5 and 4:6:10 both reduce to the same proportion and both report a 0.00 percentage-point deviation against a 2:3:5 target. The interface displays the live reduced ratio alongside your input so you can confirm the normalization visually before pressing Shake.
How Proportional Deviation and the Score Formula Work
The scoring function converts both the target parts and your submitted integers into shares and then sums the gaps. Specifically, the game divides each actual amount by the total of all three actual amounts and each target part by the total of all three target parts, computes the absolute difference for each of the three streams, multiplies by 100 to express percentage points, and adds the three absolute gaps together. The result is the total proportional deviation, and the interface displays every intermediate value as you adjust the sliders.
| Submitted ratio vs 2:3:5 | Total deviation | Result |
|---|---|---|
| 2:3:5 | 0.00 pp | Passes, 200 points |
| 4:6:10 | 0.00 pp (same proportion) | Passes, 200 points |
| 4:6:9 | ≈ 5.263 pp | Passes, 147 points |
| Any ratio above 6.00 pp | above threshold | Miss, 0 points |
The documented near-match example uses the target 2:3:5 against the submission 4:6:9. The target shares are 2/10, 3/10, and 5/10 — that is 20%, 30%, and 50%. The actual shares are 4/19, 6/19, and 9/19 — about 21.05%, 31.58%, and 47.37%. The absolute percentage-point gaps on each stream are roughly 1.053, 1.579, and 2.632, and their sum is approximately 5.263 percentage points. Round that total with the documented formula:
round(5.263 × 10) = round(52.63) = 53
200 − 53 = 147 points
That is why the contract lists 4:6:9 against 2:3:5 as earning 147. A boundary case just at 6.00 pp yields round(6.00 × 10) = 60 and 200 − 60 = 140, so the score steps down as the deviation crosses each tenth of a percentage point. Anything above 6.00 pp is a miss and awards zero points for the round, even if you were close.
How to Play Cocktail Mixing Game: Five Rounds to 1,000
- Open the Cocktail Mixing Game page and read the current visible three-part target above the sliders. The target is the only data the judge compares your submission against.
- Set Lumen Drop, Cloud Ribbon, and Comet Fizz to integer values from 0 through 10 using the sliders, arrow keys, pointer, or touch. Avoid submitting all three zeros — the game rejects an all-zero tuple.
- Watch the live reduced ratio, the component percentage-point gap on each stream, and the total deviation update as you move the sliders. Aim for 0.00 pp before you commit.
- Press Shake by mouse, Enter, or Space to submit. The round score is max(0, 200 − round(total deviation × 10)) and the running total updates immediately.
- Move to round two and repeat steps 1–4 for all five briefs. Each accepted mix clears your current miss history and unlocks the next round; five perfect rounds total exactly 1,000.
Misses, Repair, the Two-Miss Deadlock, and Restart
The miss counter only counts distinct above-threshold attempts. The game divides your submitted integers by their greatest common divisor before storing the miss signature, which is why repeating an equivalent scale such as 4:6:10 after a 2:3:5 miss does not consume another chance. A second different above-threshold ratio — one that reduces to a different triple — closes the run and the interface stops accepting new submissions until you Restart. This rule gives you a single repair attempt per round, and accepted mixes reset the miss history so the next brief starts with zero strikes.
Because the same pure judgment function runs on every activation path, the miss outcome is reproducible from the visible target and the sliders you set. If a run deadlocks, Restart restores the first visible target, zero inputs, no misses, and a zero score, so you can attempt the full five-round route again with a clean slate. Completed and deadlocked states freeze judging entirely, which prevents late slider changes from rewriting a finished result.
Keyboard, Touch, and Boss Key Controls
The interface stays accessible from keyboard and touch at the same time. Range controls keep their native arrow-key behavior, the Shake button responds to click, Enter, and Space, and Restart works through the same activation paths. Pointer and touch input feed the same controlled values the keyboard writes, so a mobile tap and an arrow-key nudge produce identical submissions. The page uses only text, CSS, React state, and the existing GameShell — there is no account, upload, API call, random service, real recipe database, or extra package, which keeps the controls deterministic.
The Boss control covers the interface after a double Escape and is intended for shared spaces. Because a visual overlay alone does not disable focused native controls, the game explicitly blocks slider updates, Shake, and Restart while the Boss screen exists, so an accidental key press cannot leak through. After dismissing the Boss overlay, the page resumes judging from exactly the state it had before the cover.
For readers who want a comparable keyboard-friendly challenge with an interrupt pattern, the Fireworks Simulator documents the same Boss-key workflow for a short fireworks challenge. If you prefer a deterministic, no-account puzzle to warm up before tackling ratios, the Nonogram page solves a compact picture-logic grid on the same kind of keyboard and touch controls.