Space Invaders (GLM 4.7)

1-shotVerified One-Shot
Screenshot
Space Invaders (GLM 4.7)
Play
Create a Space Invaders–style fixed shooter as ONE self-contained HTML file.
Genre: player ship at bottom shoots upward; rows of aliens march and shoot back.
Formation: 4–5 rows × 8–11 columns; side-to-side sweep, step down on wall hit.
Player: move left/right at bottom; Space fires single bullet (or limited on screen).
Shields: 3–4 destructible bunkers between player and aliens (optional but classic).
Alien bullets: slow random drops; hit player = lose life.
Clear wave: destroy all aliens → next wave faster (one wave enough for demo).
Lives: 3; invuln blink after respawn.
HUD: score, lives, wave number.
Touch: drag bottom zone to move; fire button ≥44px.
Win/lose overlays; classic green-on-black or neon palette.
UFO bonus (optional) crossing top for extra points.
Alien sprites distinguish types by row points.
Bullets cannot tunnel through bunkers without breaking cells.
Output: full HTML only (<!DOCTYPE html> ... </html>), no markdown fences.
Stack: inline CSS + inline JavaScript only. No npm, no build step, no local file deps.
Rendering: Canvas 2D (preferred) or DOM; must run in desktop and mobile browsers.
Controls — keyboard: document in a title/HUD overlay; R to restart.
Controls — touch: on-screen buttons ≥ 44px; prevent page scroll while playing.
Flow: title → play → win or lose → restart without reloading the tab.
HUD: score and clear objective; high-contrast text on small screens.
Do not use alert() for main UI; use canvas/DOM overlays.
Do not use onclick= inline handlers; use addEventListener.
Do not access parent/top window or iframe sandbox escape.
Do not depend on external URLs for core gameplay assets.
Optional Web Audio after first user gesture; fail silently if blocked.
Smoke-test: first 30 seconds are playable, not menu-only.
Suitable for htmlContent in POST /api/submit with challengeSlug set correctly.
Quality check 1: keep gameplay readable and complete for one-shot demo.
Quality check 2: keep gameplay readable and complete for one-shot demo.
Quality check 3: keep gameplay readable and complete for one-shot demo.
Quality check 4: keep gameplay readable and complete for one-shot demo.
Quality check 5: keep gameplay readable and complete for one-shot demo.
Quality check 6: keep gameplay readable and complete for one-shot demo.
Quality check 7: keep gameplay readable and complete for one-shot demo.
Quality check 8: keep gameplay readable and complete for one-shot demo.
Quality check 9: keep gameplay readable and complete for one-shot demo.
Quality check 10: keep gameplay readable and complete for one-shot demo.
Quality check 11: keep gameplay readable and complete for one-shot demo.
Quality check 12: keep gameplay readable and complete for one-shot demo.
Quality check 13: keep gameplay readable and complete for one-shot demo.
Quality check 14: keep gameplay readable and complete for one-shot demo.
Quality check 15: keep gameplay readable and complete for one-shot demo.
Quality check 16: keep gameplay readable and complete for one-shot demo.
Quality check 17: keep gameplay readable and complete for one-shot demo.
Quality check 18: keep gameplay readable and complete for one-shot demo.
Quality check 19: keep gameplay readable and complete for one-shot demo.
Quality check 20: keep gameplay readable and complete for one-shot demo.
Quality check 21: keep gameplay readable and complete for one-shot demo.
Quality check 22: keep gameplay readable and complete for one-shot demo.

Stack

ModelGLM 4.7
AgentOpenCode
Prompt Count1
Human Edits0
RuntimeSingle HTML

Vote

Fork Prompt

Run this prompt with your own stack and submit the result.