Files
geograsim/.humanInput/FlussSimulation
T
Adminator f22c5ebbfe Stand 2026-04-13: PHP/MySQL Infrastruktur, Flussmanagement, Stadt-Prototyp
- PHP/MySQL Backend (XAMPP + Produktionsserver)
- Front-Controller, API-Endpunkte, Session-Management
- Flussmanagement-Simulation (Echtzeit, Punkt-basierter Fluss)
- Stadt & Raumplanung (Prototyp, Top-Down Kachelsystem)
- Klimawaechter 3D: Deiche kleiner, Baeume kippen, Budget angepasst
- persistence.ts: Dualer Speicher (localStorage + Server-API)
- 6 Unit-Test-Dateien fuer bestehende Simulationen

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:43:42 +02:00

594 lines
12 KiB
Plaintext
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.
Pflichtenheft
Simulation „Flussmanagement“ für den Geografieunterricht
1. Ziel des Projekts
Ziel ist die Entwicklung einer interaktiven Simulation für den Geografieunterricht (Sekundarstufe I, 1015 Jahre), in der Schülerinnen und Schüler ein Flusssystem steuern und dabei Zielkonflikte zwischen:
Hochwasserschutz
Landwirtschaft
Ökologie
Wirtschaft
erkennen und ausbalancieren.
Die Simulation soll sich wie ein Spiel anfühlen, aber fachlich korrekt und didaktisch wirksam sein.
2. Zielgruppe
Schülerinnen und Schüler (1015 Jahre)
Lehrpersonen (Geografie, ggf. fächerübergreifend)
Einsatz im Klassenverband (Einzel- oder Gruppenarbeit)
3. Zentrale didaktische Ziele
Die Anwendung muss ermöglichen:
Verständnis von MenschUmwelt-Systemen
Erkennen von Zielkonflikten (Trade-offs)
Einsicht in nichtlineare Zusammenhänge
Bewertung von Eingriffen in Naturräume
Reflexion historischer Entwicklungen (optional)
4. Spielprinzip
Der Spieler übernimmt die Rolle eines Entscheidungsträgers (z. B. Region/Behörde) und steuert Maßnahmen an einem Fluss.
Grundmechanik
Spieler wählt Steuermaßnahmen
Simulation berechnet Auswirkungen
Spieler sieht visuelle Veränderungen
Spiel bewertet Ergebnis anhand mehrerer Ziele
5. Spieldauer
Das Spiel muss konfigurierbar sein:
Leveltyp Dauer
Kurzlevel 1015 Minuten
Standardlevel 2030 Minuten
Langlevel 3040 Minuten
Steuerung der Dauer über:
Anzahl der Runden
Anzahl aktiver Parameter
Ereignisdichte
Komplexität der Entscheidungen
6. Spielstruktur
6.1 Rundenbasiertes System
Ein Level besteht aus mehreren Runden:
Situation anzeigen
Spieler trifft Entscheidungen
Simulation wird berechnet
Ergebnisse werden visualisiert
ggf. Ereignis tritt ein
6.2 Levelstruktur
Levels unterscheiden sich durch:
Rahmenbedingungen
freigeschaltete Maßnahmen
Zielgewichtung
Schwierigkeit
7. Steuergrößen (Spieleraktionen)
Mindestens folgende Maßnahmen müssen implementiert werden:
Flussbegradigung
Dämme bauen
Ausbaggern
Auen freigeben
Renaturierung
Bewässerung
Jede Maßnahme:
hat Intensität (0100)
hat Kosten
hat positive und negative Effekte
8. Zustandsparameter (Simulation)
Alle Werte liegen im Bereich 0100:
Risiken
Lokales Hochwasser
Hochwasser flussabwärts
Erosion
Nutzen
Bodenfruchtbarkeit
Biodiversität
Grundwasser
Nutzbare Fläche
Wirtschaft
9. Rahmenbedingungen
Pro Level definierbar:
Niederschlag
Extremwetter
Gefälle
Bevölkerungsdruck
Budget
Diese sind nicht direkt steuerbar, beeinflussen aber die Simulation.
10. Simulationslogik
10.1 Grundprinzip
Die Simulation basiert auf:
direkten Effekten von Maßnahmen
indirekten Wechselwirkungen zwischen Parametern
nichtlinearen Funktionen
10.2 Anforderungen an die Logik
Die Simulation muss:
nichtlinear sein (keine einfachen +/ Beziehungen)
abnehmenden Nutzen bei steigender Intensität abbilden
überproportionale Nebenwirkungen bei starken Eingriffen erzeugen
Kettenreaktionen ermöglichen
10.3 Beispielhafte Effekte
Begradigung → mehr Fläche, aber mehr Hochwasser flussabwärts
Dämme → lokaler Schutz, aber Nachteile für Landwirtschaft
Renaturierung → ökologische Vorteile, aber weniger Fläche
11. Bewertungssystem
11.1 Zielbereiche
Das Spiel bewertet:
Sicherheit
Ökologie
Landwirtschaft
Wirtschaft
11.2 Mehrzielbewertung
Es gibt keine perfekte Lösung.
Gesamtscore basiert auf gewichteter Kombination:
Score = f(Sicherheit, Ökologie, Landwirtschaft, Wirtschaft)
Gewichtung ist je Level anpassbar.
12. Balancing-Anforderungen
Das System muss sicherstellen:
12.1 Keine dominante Strategie
Keine Maßnahme darf immer optimal sein
12.2 Zielkonflikte
Jede Maßnahme muss mindestens einen Nachteil haben
12.3 Kontextabhängigkeit
Wirkung hängt von Rahmenbedingungen ab
12.4 Extremwerte vermeiden
Maximale Eingriffe müssen Risiken erzeugen
13. Spielmechaniken gegen Fehlverhalten
Muss implementiert werden:
Budgetbegrenzung
Strafsystem für extreme Eingriffe
Katastrophen bei kritischen Zuständen
Bonus für ausgewogene Strategien
14. Visualisierung
Die Simulation muss visuell darstellen:
Hochwasser (Überflutung)
Flussverlauf (gerade vs. mäandrierend)
Vegetation / Biodiversität
Landwirtschaft (Ertrag sichtbar)
Bebauung
Wichtig:
Jede Änderung im Modell muss sichtbar sein.
15. Benutzeroberfläche
Anforderungen
einfache Bedienung (Schüler geeignet)
klare Rückmeldung
visuelle Feedbacks statt Zahlenlast
Parameter optional einblendbar
16. Admin-/Lehrermodus
Muss enthalten:
Auswahl von Levels
Anpassung von:
Budget
Klima
Zielgewichtung
Aktivieren/Deaktivieren von Maßnahmen
Festlegen der Spieldauer
17. Technische Anforderungen
Frontend
Web-basiert (HTML, JS, optional TypeScript)
responsiv
keine Installation nötig
Backend (optional)
für Speicherung von Szenarien
keine Pflicht für Minimalversion
18. Erweiterbarkeit
Das System muss modular aufgebaut sein, damit später ergänzt werden kann:
historische Level
weitere Naturprozesse
andere geografische Themen
19. Test- und Balancing-System
Das System muss ein internes oder separates Modul enthalten, das:
viele Strategien automatisch testet
dominante Strategien erkennt
Extremverhalten identifiziert
Balanceprobleme meldet
20. Abnahmekriterien
Das System gilt als erfolgreich, wenn:
ein Level in 1040 Minuten spielbar ist
mehrere unterschiedliche Strategien zum Erfolg führen
keine einzelne Maßnahme dominiert
Auswirkungen visuell nachvollziehbar sind
Schüler Zielkonflikte erkennen können
21. Anhänge
Anhang A: Datenmodell (JSON)
Anhang B: Beispiel-Simulationslogik
Anhang C: Balancing-Tester
(Diese basieren auf den zuvor entwickelten Modellen und werden als Referenz bereitgestellt.)
Fazit
Dieses Pflichtenheft beschreibt kein einfaches Spiel, sondern ein:
dynamisches, nichtlineares, mehrzieliges Simulationssystem für didaktisches Lernen
Wenn du willst, gehe ich im nächsten Schritt noch weiter und erstelle dir:
konkrete Level (z. B. Nildelta, Industrialisierung, Alpenfluss)
oder eine fertige Prompt-Version für eine Programmier-KI (z. B. Cursor, GPT, etc.)
Das wäre der nächste logische Schritt.
Ja mach das mit dem konkreten Level noch als Ergänzung
Gut — ich ergänze das Pflichtenheft jetzt um konkrete, sofort implementierbare Level-Spezifikationen.
Diese sind so formuliert, dass eine KI sie direkt in Datenstrukturen oder Code übersetzen kann.
Ergänzung zum Pflichtenheft: Konkrete Leveldefinitionen
22. Levelsystem Struktur
Jedes Level wird formal definiert durch:
type LevelDefinition = {
id: string;
title: string;
description: string;
durationTargetMinutes: number;
initialState: State;
conditions: Conditions;
allowedControls: (keyof Controls)[];
controlLimits: Partial<Controls>;
scoreWeights: {
safety: number;
ecology: number;
agriculture: number;
economy: number;
};
rounds: number;
events?: LevelEvent[];
winConditions: {
minScore?: number;
targetScores?: Partial<ScoreBreakdown>;
};
loseConditions?: {
maxFloodLocal?: number;
maxFloodDownstream?: number;
minGroundwater?: number;
};
};
23. Level 1 Einstieg: „Fluss und Siedlung“
Ziel
Grundverständnis von Hochwasser und einfachen Maßnahmen
const level1: LevelDefinition = {
id: "L1",
title: "Fluss und Siedlung",
description: "Eine kleine Siedlung liegt an einem Fluss und ist regelmäßig von Hochwasser betroffen.",
durationTargetMinutes: 10,
rounds: 5,
initialState: {
floodLocal: 60,
floodDownstream: 40,
erosion: 30,
soilFertility: 60,
biodiversity: 70,
groundwater: 55,
usableLand: 40,
economy: 40
},
conditions: {
rainfall: 60,
extremeWeather: 30,
slope: 40,
populationPressure: 30,
budget: 120
},
allowedControls: ["levees", "floodplainRelease"],
controlLimits: {
levees: 60,
floodplainRelease: 60
},
scoreWeights: {
safety: 0.5,
ecology: 0.2,
agriculture: 0.15,
economy: 0.15
},
winConditions: {
minScore: 60
},
loseConditions: {
maxFloodLocal: 85
}
};
24. Level 2 Landwirtschaft: „Fruchtbares Tal“
Fokus
Nutzen von Überschwemmungen vs. Risiko
const level2: LevelDefinition = {
id: "L2",
title: "Fruchtbares Tal",
description: "Ein Tal lebt von fruchtbaren Böden durch regelmäßige Überschwemmungen.",
durationTargetMinutes: 20,
rounds: 7,
initialState: {
floodLocal: 55,
floodDownstream: 35,
erosion: 35,
soilFertility: 75,
biodiversity: 65,
groundwater: 60,
usableLand: 45,
economy: 50
},
conditions: {
rainfall: 65,
extremeWeather: 40,
slope: 35,
populationPressure: 40,
budget: 150
},
allowedControls: ["levees", "floodplainRelease", "irrigation"],
scoreWeights: {
safety: 0.25,
ecology: 0.2,
agriculture: 0.4,
economy: 0.15
},
winConditions: {
targetScores: {
agriculture: 65,
safety: 50
}
}
};
25. Level 3 Industrialisierung: „Der gezähmte Fluss“
Fokus
Technische Eingriffe und ihre Folgen
const level3: LevelDefinition = {
id: "L3",
title: "Der gezähmte Fluss",
description: "Der Fluss soll kontrolliert werden, um Städte und Industrie zu schützen.",
durationTargetMinutes: 25,
rounds: 8,
initialState: {
floodLocal: 50,
floodDownstream: 45,
erosion: 40,
soilFertility: 55,
biodiversity: 50,
groundwater: 50,
usableLand: 55,
economy: 60
},
conditions: {
rainfall: 60,
extremeWeather: 45,
slope: 50,
populationPressure: 70,
budget: 180
},
allowedControls: [
"levees",
"straightening",
"dredging"
],
scoreWeights: {
safety: 0.4,
ecology: 0.1,
agriculture: 0.2,
economy: 0.3
},
events: [
{
round: 4,
type: "flood_event",
intensity: 70
}
],
winConditions: {
minScore: 65
}
};
26. Level 4 Systemdenken: „Fluss im Gleichgewicht“
Fokus
Mehrere Ziele gleichzeitig
const level4: LevelDefinition = {
id: "L4",
title: "Fluss im Gleichgewicht",
description: "Finde eine Balance zwischen Sicherheit, Natur und Nutzung.",
durationTargetMinutes: 30,
rounds: 10,
initialState: {
floodLocal: 55,
floodDownstream: 50,
erosion: 45,
soilFertility: 60,
biodiversity: 60,
groundwater: 50,
usableLand: 50,
economy: 55
},
conditions: {
rainfall: 60,
extremeWeather: 50,
slope: 45,
populationPressure: 60,
budget: 180
},
allowedControls: [
"levees",
"straightening",
"floodplainRelease",
"renaturation",
"irrigation"
],
scoreWeights: {
safety: 0.25,
ecology: 0.25,
agriculture: 0.25,
economy: 0.25
},
winConditions: {
minScore: 70
}
};
27. Level 5 Speziallevel: Nildelta
Bezug zur realen Welt und deinem Wunsch nach nicht einseitigem Denken
Fokus
Überschwemmung als Vorteil
const level5: LevelDefinition = {
id: "L5",
title: "Nildelta",
description: "Die Überschwemmungen bringen fruchtbare Böden aber auch Risiken.",
durationTargetMinutes: 35,
rounds: 10,
initialState: {
floodLocal: 65,
floodDownstream: 40,
erosion: 30,
soilFertility: 85,
biodiversity: 70,
groundwater: 65,
usableLand: 50,
economy: 60
},
conditions: {
rainfall: 40,
extremeWeather: 20,
slope: 20,
populationPressure: 70,
budget: 160
},
allowedControls: [
"levees",
"irrigation",
"floodplainRelease"
],
scoreWeights: {
safety: 0.2,
ecology: 0.2,
agriculture: 0.45,
economy: 0.15
},
winConditions: {
targetScores: {
agriculture: 75
}
},
loseConditions: {
minGroundwater: 25
}
};
28. Ereignissystem (für alle Levels)
type LevelEvent = {
round: number;
type: "flood_event" | "drought" | "economic_boost";
intensity: number;
};
Beispiele:
Hochwasser
Dürre
wirtschaftlicher Boom
29. Didaktische Progression
Level Konzept
1 Ursache-Wirkung
2 Nutzen vs Risiko
3 Technik vs Natur
4 Systemdenken
5 Realwelt + Transfer
30. Abschluss
Mit dieser Ergänzung hat deine KI jetzt:
ein vollständiges Spielsystem
ein Simulationsmodell
ein Balancing-Konzept
konkrete Leveldaten
klare didaktische Struktur