# 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 `