Tetris is an endless single-player marathon. The architecture decision defines its mechanics, result, theme, and presentation boundaries.
The game uses a 10×20 visible board, a seven-bag piece sequence, five-piece next preview, hold slot, ghost piece, SRS rotation and wall kicks, progressive gravity, and bounded lock-delay resets. A run ends when the stack tops out.
Use the arrow keys to move and soft drop, Z/X or the up arrow to rotate, Space for a hard drop, C to hold, and P or Escape to pause. When a stack shake is ready, physically shake a motion-enabled device, press S, or choose Compact now. The visible touch controls provide the standard placement actions on mobile.
Power-ups begin appearing randomly after the opening pieces, with a cooldown so they remain special rather than replacing normal stacking.
The magic breaker is a glowing single-cell piece that passes through occupied blocks and destroys them. Move it left or right to carve through awkward areas, or press Space to send it to the floor and erase every block in its path. Each destroyed block is worth 50 points.
The stack shake pauses gravity and asks the player to shake the device. Every block then falls to the lowest available space in its column, after which any newly completed rows clear normally. Browsers that gate motion sensors expose an enable step; Compact now and S always provide the same accessible result without a sensor.
At phone widths, the board and information rail remain side by side in an approximately 70/30 split. The rail keeps the current score, lines, level, high score, held piece, next-piece queue, pause, and new-game actions visible while the existing touch controls remain below the play area. Board height is also limited by the dynamic viewport and bottom safe area so the board and controls fit together without hiding the status information. Tablet portrait and short landscape layouts remove the decorative introduction, tighten the two-column game surface, and size the board against the available viewport so play is ready without an initial scroll. The Tetris shell retains natural document scrolling as a fallback when browser chrome, accessibility settings, or an unusually short viewport leave less space than expected.
Line clears trigger an intentionally theatrical, non-blocking presentation: the affected rows streak, the board flashes and recoils, sparks burst outward, and a large clear count appears. Larger clears increase the intensity. Players who prefer reduced motion receive a prominent static flash and count instead.
The high-score value is visible throughout the run and updates immediately when the current score exceeds it. Breaking the standing record triggers a large in-game announcement and keeps the high-score panel highlighted while play continues. The browser stores this local best score independently of signed-in leaderboard results.
Only completed top-outs are submitted. Restarts, abandoned games, and unfinished page sessions are not recorded. The result contains bounded aggregate facts such as duration, lines, level, locked pieces, clear counts, drop distances, and power-up totals; the server validates those facts and derives the stored score rather than accepting a client-authored score. Signed-in results feed history, leaderboards, top-score notifications, and the Tetris achievement catalog.