DinoQbert

Stomp every rock before the raptors get you

↑/Q up-left  |  →/E up-right  |  ←/A down-left  |  ↓/D down-right  |  R restart

How it works

DinoQbert recreates the 1982 Gottlieb arcade original: hop-based movement, one jump per keypress with arcade-matched hop timing (~0.67s per hop), and the classic @!#?@! swear bubble on death. Coily spawns as an egg, bounces randomly down the pyramid, then hatches and chases the player. Dark balls bounce down and kill on contact; light balls are safe to catch for 100 pts. Slick (round 4+) hops down uncoloring cubes. Ugg and Wrongway (round 3+) crawl upward from the bottom corners. Two transport discs at variable positions let Q*bert escape and lure Coily to his death.

Tap Viz to see the AI’s decision-making. Each direction diamond shows two numbers: P% (survival probability, above) and +N (tour hops remaining, below), colored green/yellow/red by safety. The chosen move gets a white border. An orange dashed line traces the planned tour—filled dots are target cubes, hollow dots are transit. Colored overlays show where each enemy could be in 1–2 hops (purple=Coily, red=balls, green=Slick, orange=Ugg/Wrongway), fading with distance and probability. A pulsing cyan ring marks disc lure targets. A reason badge in the bottom-left explains the decision: TOUR, SAFE+SHORT, LURE, ESCAPE, PARITY, UNSTUCK, etc.

Every hop, the AI scores each direction as log(Psurvive)/depth − λ×tour_cost. The safety layer uses a perfect teacher—an expectimax search over the real game engine that enumerates enemy RNG branches—to compute multi-hop survival probability (up to 20 hops deep), with a factored per-enemy survival tree as fallback. The strategy layer runs Dijkstra + greedy nearest-neighbor tour planning with bottom-up sweep priority and completed-cube avoidance on toggle levels. On L5+ cycle levels (where cubes need 2 stomps and completed cubes revert on contact), a double-stomp state machine overrides the tour planner: it picks a target cube bottom-up, navigates to it via uncompleted cubes, then executes a 3-hop bounce sequence—stomp the target (0→1), hop to an adjacent uncompleted cube, hop back to finish it (1→2). The state persists across hops so the AI never abandons a half-done cube. Disc parity checks prevent unsolvable board states, and when Coily is close enough to follow, the AI routes toward transport discs for a lure kill—riding the disc while Coily chases off the edge buys a long peaceful window.

← Back