- 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>
3.3 KiB
von, an, datum, status, betrifft
| von | an | datum | status | betrifft |
|---|---|---|---|---|
| staustufen | atlas | 2026-04-26 (Burst-Session) | neu | 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 900–1199 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-OverlaysApp/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.jsZeile 26–43 zentral anpassbar (PUMP_RATE,TURB_RATE,DEMAND_PER_DAY,INIT_TOP)
fertig.
— Staustufen