# Retro Arcade Platform — Design Spec **Date:** 2026-03-31 ## Overview Erweiterung des bestehenden Snake-Spiels zu einer kleinen Retro-Arcade-Plattform mit vier Spielen. Alle Dateien sind plain HTML/CSS/JS, kein Build-Schritt, kein Server, kein Package Manager — direkt im Browser öffenbar. ## Spiele 1. **Snake** — bestehendes `snake.html`, minimal angepasst 2. **Tetris** — neu 3. **Breakout** — neu 4. **Space Invaders** — neu ## Dateistruktur ``` testprojekt/ ├── index.html ← Startmenü (neu) ├── style.css ← gemeinsame Styles (neu) ├── scores.js ← Highscore-Logik (neu) ├── snake.html ← angepasst (shared assets einbinden) ├── tetris.html ← neu ├── breakout.html ← neu └── spaceinvaders.html ← neu ``` ## Architektur ### Gemeinsame Assets **`style.css`** - Navy/Teal-Theme: Hintergrund `#1a1a2e`, Akzent `#4ecca3`, Schrift `Courier New` - Gemeinsame Klassen: Body-Layout, Überschriften, HUD, Canvas-Border, Overlay, Buttons, Game-Kacheln - Wird von allen HTML-Dateien via `` eingebunden **`scores.js`** - `getHighscore(game)` — liest aus `localStorage` (`hs_snake`, `hs_tetris`, `hs_breakout`, `hs_spaceinvaders`), gibt `0` zurück wenn kein Eintrag - `setHighscore(game, score)` — speichert nur wenn `score > getHighscore(game)` - Wird via `` eingebunden ### Startmenü (`index.html`) - Titel: "RETRO ARCADE" in Teal, zentriert - 2×2 Grid mit einer Kachel pro Spiel - Jede Kachel zeigt: Spielname + aktuellen Highscore (gelesen beim Seitenload via `scores.js`) - Klick auf Kachel → öffnet die jeweilige Spieldatei (`href="snake.html"` etc.) - Highscores werden beim Öffnen von `index.html` frisch aus `localStorage` gelesen — immer aktuell ### Einzelne Spiele Jedes Spiel bekommt: - `` und `` im Head - "← Menü"-Button oben links, verlinkt auf `index.html` - Beim Game Over: `setHighscore('tetris', score)` (bzw. jeweiliger Spielname) aufrufen, bevor der Overlay angezeigt wird - Spielspezifische Styles (z.B. Tetris-Blockfarben) inline im jeweiligen `