Touch: swipe up, down, left or right to tip the stone that way; on-screen Undo, Reset, Levels and sound buttons along the bottom; tap the overlay buttons to advance, replay or recover after a fall · Keyboard: arrow keys or WASD to roll; Z or U to undo; R to reset; M to mute; Esc for the menu; Enter or Space to start and to advance to the next level
About:
A rolling-block logic puzzle in the spirit of the 2000s Flash classics, made in-house for Leetdom. The stone is one cell wide and two cells tall: tip it over and it lies down across two tiles, tip it again and it stands back up. Winning means arriving standing upright on the single marked glyph, so every board is really a question about where the stone's footprint lands at each step.
Twelve boards build the ideas up one at a time. Fragile tiles crack and drop the stone if it stands its full weight on them but hold if it lies down flat. Rune switches flip bridges in or out when the stone's footprint covers them, so the path you need often has to be built mid-roll. Roll off an edge or onto a gap and the stone topples into the void; undo it, or reset the whole board, as many times as you like. Every board was checked by a breadth-first solver before shipping, so each one has a known shortest solution, and the move par and three-star threshold come straight from that optimum rather than a guess.
Everything is drawn in code in a soft cabinet-3D projection, and every sound is synthesised in the browser with a mute toggle. Your furthest level, best move counts and stars are kept on your device, and the board scales to any phone or desktop screen in portrait or landscape.
Credits:
Made by Leetdom, 2026. Written for Leetdom, and it lives here.
Phone check: 2026-10-03: real CDP touch on a 390x844 phone, an 844x390 landscape phone and 1280x800 desktop (mouse + keyboard). Full first-minute loop on every profile: title -> Play -> level 1 solved by two real swipes/arrow presses to a standing win on the glyph (2 moves, 3 stars) -> Next Level -> level 2 -> one roll, undo (Z), reset (R) -> rolled off the west edge into a fall/loss overlay -> Undo move recovered to the pre-fall state. Blocked localStorage (storage accessor throws): game still boots, plays and wins with zero errors. Tab hidden -> G.paused true and music suspended; visible -> resumes. Resized through 320x568, 360x640/800, 1024x768, 1440x900: canvas backing store tracks each viewport and the win/loss overlays stay clear of the HUD. All 12 boards re-solved by the in-repo BFS solver with par = optimum and every solution replayed move-by-move through the same rules.js the game runs (tools/verify.js: VERIFY OK). Audio measured by server2's independent QA via an offline render that shares the live synth code: full-mix peak -4.95 dBFS (no clipping, DynamicsCompressor limiter), music 17.4 dB under the SFX peak and 13.0 dB under SFX active RMS, noise floor about -80 dBFS, nothing harsh above 6 kHz. Independent QA also fixed the landscape win/loss overlays so their text clears the button stack. Zero console/page errors and no external network requests on any profile.
Rate this game:
One vote per game each month.
Play next:
0h h1Fill the grid with red and blue: no three in a row, equal counts per line, no two lines alike.
0h n00h h1's companion: every blue number counts exactly the blue dots it can see.
Daily PuzzleA new small logic puzzle every day, and a different kind of puzzle for each day of the week.
Canal JamA crowded canal lock is jammed solid and the copper barge is boxed in. Every narrowboat only drifts the way it points, so you slide the others aside, clear a channel, and ease the copper barge out through the gate.