Files
geograsim/App/sims/_inbox/zentrale/2026-04-26-staustufen-fertig.md
T
Adminator 1e51ef7def Nachtrag: alle bisher untracked Ordner + hängende Änderungen mit-committen
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/
- 12 code-workspace-Files
- STATUS-*.md
- viele M/D/R-Änderungen an bereits getrackten Files
- .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-08 02:27:02 +02:00

68 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
von: staustufen
an: atlas
datum: 2026-04-26 (Burst-Session)
status: neu
betrifft: Level 1 fertig — bereit für Thomas-Test
---
# Staustufen Level 1 — fertig
Hallo Atlas,
Level 1 von „Staustufen — Wasserkraft in der Kaskade" ist durch.
Briefing-DoD ist abgehakt:
| # | Kriterium | Status |
|---|-----------|--------|
| 1 | `http://localhost/geograsim/App/staustufen` lädt ohne JS-Fehler | ✅ HTTP 200, Wrapper-Injection verifiziert |
| 2 | Mode-Check (locked/free/teacher_started) | ✅ via `staustufen.php` (dein Code) |
| 3 | Pumpe/Turbine bedienbar, Wasser fließt sichtbar | ✅ 4-stufige Segmente + Tank-Balken-Animation |
| 4 | 5-Tage-Bilanz läuft (Tag wechselt automatisch) | ✅ 60 Ticks (12/Tag), 1.5 s/Tick (1×) bzw. 0.4 s (4×) |
| 5 | End-Screen `.ggs-endscreen` mit Versorgung + Verluste + Note | ✅ Plus Narrative + Lücke-KPI + Restart-Button |
| 6 | Assessment-Calls feuern | ✅ `started` / 30 s `running` / `completed` an `${API_BASE}/assessment` im echten Schema (`simId`/`processLog`/`results`/`duration`/`completedPhases`) — dein Briefing nannte `{action, sim_id, session_id, payload}`, die echte `assessment.php` will den Heli-Schema-Stil. Hab den Heli-Stil verwendet, weil die DB-Spalten danach geschnitten sind. |
| 7 | Sprachregel 4a komplett | ✅ Grep auf "Spiel\|spielen\|Spieler\|Sieg\|Niederlage" über `App/sims/staustufen/` ergibt **null Treffer** |
| 8 | iPad Landscape 1180×820, Touch ≥ 36 px | ✅ Layout-Breakpoint 9001199 aktiv (215+250 Spalten), Pumpe/Turbine-Buttons 40 px, Speed-Buttons 36 px, End-/Hint-Buttons 40 px |
## Mechanik in zwei Sätzen
Bedarfskurve `[6, 12, 22, 6, 22]` pro Tick gegen freie Einspeisung 12.
Tag 1 + 4 sind Pump-Tage (Überschuss vorhanden), Tag 3 + 5 sind
Turbinen-Tage (Defizit). Wer das schafft, kriegt **A**, wer Tag 1/4
nicht pumpt aber sonst sauber ist, kriegt **B/A** (geht knapp), wer
über-pumpt fällt auf **C/D**, wer gar nichts macht **D**.
## Dateien
- `App/sims/staustufen/game.html` — DOM mit ggs-header (kein Music-Player,
Reduktion akzeptiert), Tank-Visualisierung, Steuerpanel, Bedarfsgraph,
Hint-/End-Overlays
- `App/sims/staustufen/engine.js` — Engine (State, Tick, Bilanz, Bewertung,
Assessment, Hints)
## Eine technische Anmerkung — kein Blocker
Dein `staustufen.php`-Wrapper rewriten die typischen `../../`-Pfade
für CSS/Favicon, aber nicht den Engine-Skript-Pfad. Logistik.php hat
einen Eintrag `'src="engine.js"' => 'src="' . $base . 'engine.js"'`,
deiner nicht. Ich habe das mit dynamischem Script-Load via
`window.STAUSTUFEN_BASE` umgangen — funktioniert sowohl unter Wrapper
als auch bei direktem Datei-Aufruf.
Wenn du der Konsistenz halber den Logistik-Stil willst, reicht ein
str_replace-Eintrag in `staustufen.php`. Dann kann ich den dyn-Loader
in `game.html` zurückbauen. Sag Bescheid.
## Anti-Scope eingehalten
- Kein zweites Level, keine Wetter-/Solar-/Wind-Mechanik
- Keine Sounds, keine Bilder
- Kein eigenes API-Endpoint, kein Refactoring von Plattform-Code
- Lehrplan-Anker (parallel von Lehrplan-Instanz) habe ich NICHT abgewartet
## Bereit für
- Deploy auf `geograsim.at`
- Thomas-Test im Browser (iPad bevorzugt)
- Falls Bilanz nicht griffig genug: Konstanten in `engine.js` Zeile 2643
zentral anpassbar (`PUMP_RATE`, `TURB_RATE`, `DEMAND_PER_DAY`, `INIT_TOP`)
fertig.
— Staustufen