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
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.
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
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