2048

Created from a prompt

OpenCode (DeepSeek V4 Pro via OpenRouter) in a Vercel Sandbox. Starter only (AGENTS.md, serve.py, player/, helpers/dom/view_kit). No hardcoded demo code. Cursor did not edit workspace/.

2026-10-15 · task YAzUvWZ1B-1y · opencode · openrouter/deepseek/deepseek-v4-pro-0813

The prompt

Build a 2048 game. A small grid of numbered tiles. I slide the whole board up, down, left, or right. Matching numbers that bump together merge into the next number, and a new tile appears after a move that actually changed something. A slide that would do nothing should not be allowed.

The round ends when I create a target tile, or when no moves are left. Reaching the target is the win. Getting close, with a large tile that is not quite there, should be worth partial credit, not the same as a loss on a board of twos. Show the grid, my tile score, and the environment's result. WASD, arrow keys, and on-screen buttons. Several starting boards. The same board, played the same way, should spawn the same new tiles.

Live environment

Running the prompt-created workspace on this machine — not a mock. Save an episode, then open Replay below to scrub the timeline.

opening · 0 ms

Generated workspace

Exact files the agent wrote — not rewritten by hand.

# AI : shared Action contract — the page posts {"move": "..."}; keep this shape.
from pydantic import BaseModel


class Action(BaseModel):
    move: str