oneshotlm
Compare all models on this prompt →

2048 · glm-4.7

Build a playable 2048 game with arrow-key tile sliding and merging, smooth animations, a score, and win and lose states.

⛨ sandboxed Open in new tab ↗
transcript · 4 messages
user

Build a playable 2048 game with arrow-key tile sliding and merging, smooth animations, a score, and win and lose states.

assistant
thinking
The user wants me to build a playable 2048 game in a single HTML file with:
- Arrow-key tile sliding and merging
- Smooth animations
- A score display
- Win and lose states

I'll create a complete, self-contained index.html file with all CSS and JavaScript inline. No external resources or CDNs.

Let me plan the implementation:

1. HTML structure:
   - Game board (4x4 grid)
   - Score display
   - New game button
   - Win/lose overlay messages

2. CSS:
   - Grid layout for the board
   - Tile colors based on values
   - Smooth animations for sliding and merging
   - Responsive design

3. JavaScript:
   - Game state management (4x4 array)
   - Move logic for all 4 directions
   - Tile merging logic
   - Random tile spawning (2 or 4)
   - Win detection (2048 tile)
   - Lose detection (no valid moves)
   - Score tracking
   - Animation handling

Let me write this all in one file.

I'll create a complete 2048 game with all the features you requested. Let me build this in a single HTML file.

write /workspace/index.html (21752 bytes)
toolResult

Successfully wrote 21752 bytes to /workspace/index.html

assistant
thinking
I've created the complete 2048 game. Let me verify the file was created correctly and summarize what I built.

I've created a fully playable 2048 game in `index.html`. Here's what's included: **Features:** - **Arrow key controls** - Use ↑↓←→ to slide tiles - **Smooth animations** - Tiles slide smoothly, new tiles pop in, merged tiles pulse - **Score tracking** - Current score and best score (saved to localStorage) - **Win state** - Shows "You Win!" when you reach 2048, with "Keep Playing" option - **Lose state** - Shows "Game Over!" when no moves remain - **New Game button** - Start fresh anytime **Technical details:** - Complete game logic: tile movement, merging, random spawning (2 or 4) - Responsive design - works on desktop and mobile - Mobile controls - on-screen buttons + touch swipe support - Color-coded tiles from 2 to 2048+ with proper styling - All CSS and JavaScript inline in a single file - No external dependencies or network requests The game runs entirely sandboxed with smooth CSS transitions for tile movement (0.15s ease-in-out) and animations for new/merged tiles.

TAKE IT TO CODE

A single self-contained HTML file — copy it and open in any browser, or reuse the prompt with your own pi-agent run.

RUN

modelglm-4.7
vendorZ.ai · GLM
harnesspi-agent
generated2026-07-22

EVALUATION

3/5 working

Functional 2048 game responding to arrow keys with tile merging and score updates; WASD also worked (likely bound to arrows too).

Vision grade · anthropic/claude-sonnet-5

MEASUREMENTS

Raw readings from the capture, not a verdict — the grade above is the only judgement. Percentages are how much of the screen changed; the measure under-reports sparse motion on a dark background.

idle motion0.0%
on click0.0%
on drag0.0%
on wheel0.0%
on enter + space0.0%
on arrow keys3.5%
on w/a/s/d0.0%
frame spread23.7 / 255
console errors0
js errors none

METRICS

runtime237.4s
tokens in106
tokens out5.2k
cached7.8k
cost / run$0.0098