[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"capsule:a3cea28c-732f-41aa-9b0f-efa115c47be5":3},["Reactive",4],{"id":5,"user_id":6,"title":7,"prompt_content":8,"prompt_type":9,"is_locked":10,"is_public":10,"fork_of":11,"created_at":12,"updated_at":13,"category":14,"brief":15,"attachments":16,"expected_markers":17,"user":19},"a3cea28c-732f-41aa-9b0f-efa115c47be5","695c8e6c-9654-4858-b2d3-925adefacc35","The Decaying Apple","Build a complete, single-file HTML Snake game (HTML + CSS + JS, no external libraries or CDN dependencies).\n\nGame requirements:\n\n1. Classic grid-based Snake gameplay: arrow keys control direction, snake grows when eating an apple, game ends on collision.\n\n2. Apple spawning: when an apple is eaten, a new apple must spawn on a random empty cell — it must never spawn on a cell currently occupied by the snake's body.\n\n3. Scoring: each apple is worth 10 points when it spawns. For every 2 full seconds the apple remains uneaten on the board, its value decreases by 1 point, down to a minimum of 1 point. Display the apple's current value near it on the board (small text or number) so the player can see it changing in real time. When eaten, add its current value to the score.\n\n4. Boundary behavior: for the first 3 apples eaten, hitting the edge of the board ends the game (wall collision = game over). Starting from the 4th apple eaten onward, the boundary behavior switches permanently to wrap-around mode: the snake passes through one edge and reappears on the opposite side instead of dying.\n\n5. Self-collision: the game ends if the snake's head collides with any part of its own body.\n\n6. Game over: display a clear game-over message\u002Fscreen showing the final score, and allow restarting the game.\n\n7. The game must be fully playable and visually clear — no placeholder graphics, no console-only behavior.\n\nDeliver this as a single self-contained HTML file.","text",true,null,"2026-07-11T15:41:59.843173+00:00","2026-07-11T15:58:49.607216+00:00","gaming","Snake alone has near-zero discriminative value — it's one of the most heavily represented coding exercises in any training corpus, and frontier models reproduce a working version almost by reflex. The value here isn't \"can it build Snake\" but \"can it correctly implement a small set of non-standard, composable state rules layered on top of a familiar shape.\" None of the three trap rules (decaying apple value, conditional boundary-mode switch, spawn-exclusion) appear together in any standard Snake tutorial, so models can't retrieve a matching solution verbatim — they have to actually track state and reason about interactions between the rules.\n\n## Expected model spread\n\n- **GT1** (spawn exclusion), **GT5** (self-collision), **GT6** (game over\u002Frestart) — expected high pass rate; these are \"obvious enough\" edge cases most models handle by default.\n- **GT2** (decay timing) — expected to be the main discriminator. Many models will likely hardcode a flat value or implement decay incorrectly (e.g. decay tied to game ticks\u002Fframes instead of real elapsed time, or forgetting the floor at 1).\n- **GT3** (conditional wrap-around unlock) — expected to be the strongest discriminator. High risk models either (a) implement wrap-around from the start ignoring the \"first 3 apples\" condition, (b) implement wall-death permanently ignoring the switch, or (c) implement the switch but with an off-by-one on the apple count.\n- **GT4** (rule interaction under wrap mode) — tests whether wrap-around, once active, still correctly coexists with self-collision and spawn rules.\n\n## Known cheats\u002Frisks\n\n- Fake\u002Fskipped decay: apple value displayed but never actually changes, or changes cosmetically without affecting score.\n- Wrap-around implemented as always-on (ignores conditional trigger) — very likely, since it's the more \"standard\" easy-mode choice.\n- Apple can spawn under the snake's tail on the same tick it moves (off-by-one in the exclusion check).\n- Self-collision checked against the full body array including the head itself (instant false game-over) or excluding the segment right behind the head (missed collision).\n- No real restart (just a reload prompt, or broken state carry-over into the new game).\n- `finish_reason: length` truncation — hard fail per platform rule regardless of partial correctness.\n\n## GT Checklist\n\n| # | Criterion | Pass | Partial | Fail |\n|---|---|---|---|---|\n| GT1 | Apple spawn exclusion | Never spawns on snake body across multiple eats | Rare\u002Fedge-case overlap under specific board fill | Regularly spawns on body or logic absent |\n| GT2 | Decay scoring | Value decreases exactly -1\u002F2s, floors at 1, correct score added on eat | Decay present but wrong rate\u002Ffloor, or UI\u002Fscore mismatch | No decay, or decay cosmetic only (score unaffected) |\n| GT3 | Boundary switch trigger | Wall = death for apples 1–3, wrap-around from apple 4 onward, verified via screenshots pre\u002Fpost switch | Switch happens but off-by-one (e.g. triggers at apple 3 or 5) | No conditional switch (always wrap or always wall) |\n| GT4 | Wrap-around correctness post-switch | Snake reappears correctly on opposite edge, self-collision and spawn rules still hold | Wrap works but causes visual glitch or occasional double-count | Wrap-around broken, crashes, or game freezes |\n| GT5 | Self-collision | Correct head-vs-body detection, no false positives\u002Fnegatives | Minor edge case miss (e.g. only on tail growth frame) | Non-functional or trivially wrong (always\u002Fnever triggers) |\n| GT6 | Game over & restart | Clear game-over screen, final score shown, functional restart with clean state | Restart works but some state leaks (score, apple value) | No game-over screen or restart broken\u002Fabsent |\n\n## Grading method\n\nRender each submission in headless Chromium via Playwright. Screenshot at start, after eating 2 apples (still wall-death mode), after eating 4 apples (wrap-around mode active), and at game-over. Manually verify apple value display changes over a real 4-6 second idle window to confirm actual decay timing rather than a cosmetic counter. Check console for errors during wrap transitions.",[],{"items":18,"matchAll":10},[],{"username":20,"avatar_url":21},"Ezarwebmaster","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F42354978?v=4"]