1e51ef7def
- 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>
271 lines
9.7 KiB
Markdown
271 lines
9.7 KiB
Markdown
---
|
||
von: thomas (via logistik-instanz vorbereitet)
|
||
an: busfahrt
|
||
datum: 2026-05-02 23:55
|
||
status: neu
|
||
betrifft: Kickoff-Briefing — neue Simulation „Busfahrt" (Topografie Europa, Distanz-Schätzung)
|
||
---
|
||
|
||
# Kickoff: Simulation „Busfahrt"
|
||
|
||
Willkommen, Busfahrt-Instanz. Du baust ein neues, **bewusst kleines**
|
||
Modul für GeoGraSim. Ziel: Schüler*innen lernen Hauptstädte, Staaten und
|
||
Entfernungen in Europa, indem sie für ein Busunternehmen Touren-Aufträge
|
||
abarbeiten.
|
||
|
||
Thomas hat ausdrücklich gewünscht, dass diese Simulation **einfach
|
||
bleibt** — sie soll innerhalb einer Programmiersession funktionieren.
|
||
Komplexitäts-Hütchen: Wirtschaft, Multi-Tag, Multi-Fahrzeug → erst später.
|
||
|
||
---
|
||
|
||
## 1. Mission
|
||
|
||
Ein Busunternehmen erhält Aufträge: „Fahre nach Paris (Hauptstadt von
|
||
Frankreich)." Der/die Bearbeiter*in tippt die Stelle auf der Karte.
|
||
Abweichung in km wird gemessen. Drei Versuche. Danach Info-Card zur Stadt.
|
||
In der Voll-Variante (Phase 2): Kilometer schätzen, Angebot kalkulieren,
|
||
gegen Konkurrenz-Preise antreten.
|
||
|
||
---
|
||
|
||
## 2. Lernziele (AT GW Sek I)
|
||
|
||
| # | Lernziel | Lehrplan-Bezug |
|
||
|---|----------|----------------|
|
||
| 1 | Hauptstädte und Staaten Europas auf der Karte verorten | 1./2. Klasse — Räumliche Orientierung, Topografie Europas |
|
||
| 2 | Entfernungen zwischen europäischen Städten grob in km schätzen | 2./3. Klasse — Maßstab, Distanz, Luftlinie |
|
||
| 3 | Distanz↔Preis-Zusammenhang erkennen, einfaches Angebot kalkulieren | 3. Klasse — Mobilität, Wirtschaft, Verkehrsräume |
|
||
| 4 | Kulturelle Eigenheiten europäischer Hauptstädte (Bevölkerung, Sprache, Kuriosum) | Querschnitt — Allgemeinbildung, Vielfalt Europas |
|
||
|
||
Lehrplan-Anker via Lehrplan-Instanz nachpflegen lassen
|
||
(`_inbox/lehrplan/` mit Begriffsbedarf-Anfrage anpingen).
|
||
|
||
---
|
||
|
||
## 3. Mechanik
|
||
|
||
### Phase 1 (MVP — die erste Session)
|
||
|
||
**Auftrags-Loop pro Auftrag:**
|
||
1. Auftrag erscheint als Card oben/links: „Fahre nach **Paris** —
|
||
Hauptstadt von Frankreich. Hinweis: liegt am Fluss Seine."
|
||
2. Optional vorgelagerte **Single-Choice-Frage** bei Hauptstadt-Aufgaben:
|
||
„Wie heißt die Hauptstadt von Frankreich? □ Paris □ Madrid □ Rom"
|
||
(3–4 Optionen, eine korrekt). Falsch = Hinweis, dann Klick
|
||
auf Karte.
|
||
3. **Karte tippen** (Leaflet/OSM): Touch/Click setzt Marker, Distanz-Mess-
|
||
Linie zeigt Luftlinie zur tatsächlichen Position (erst NACH Tap, nicht
|
||
vorher als Live-Hilfe).
|
||
4. **Bewertung pro Versuch:**
|
||
- < 50 km → Treffer (Volle Punkte)
|
||
- 50–200 km → ungenau (halbe Punkte)
|
||
- > 200 km → daneben (kein Punkt, Versuch verloren)
|
||
5. Drei Versuche. Bei Fehlversuch ein **Hinweis** (z.B. „Du bist 280 km
|
||
zu östlich" oder Himmelsrichtung anzeigen).
|
||
6. **Info-Card** nach Auflösung: Stadtname, Land, Bevölkerung, kurze
|
||
3-Zeilen-Beschreibung, Bild (DALL-E im offiziellen Bildstil — siehe
|
||
Memory `reference_bildstil.md`).
|
||
|
||
**Score-System (MVP):** Punkte pro Auftrag (3 / 1 / 0 je nach Treffer).
|
||
Insgesamt 8–10 Aufträge pro Level → max 30 Punkte. Sterne-Auswertung am
|
||
Ende.
|
||
|
||
### Phase 2 (Erweiterung — zweite Session)
|
||
|
||
**Wirtschaft drauf:**
|
||
1. Nach Karten-Treffer öffnet sich **Rechnungs-Maske**:
|
||
„Wie viele km muss der Bus fahren? Bitte Angebot kalkulieren."
|
||
2. Schüler*in tippt Schätzung ein (km).
|
||
3. **Konkurrenz-Mechanik**: System zeigt verdeckten Konkurrenz-Preis
|
||
(z.B. 95 % der echten Distanz × Tarif). Wenn eigene Schätzung höher
|
||
→ Auftrag verloren (kein Geld). Wenn niedriger → Auftrag gewonnen,
|
||
aber Marge sinkt mit jedem km Differenz.
|
||
4. **Budget über mehrere Aufträge** statt Punkte: Startbudget 5 000 €,
|
||
am Ende soll mindestens 7 500 € stehen.
|
||
|
||
### Phase 3 (Polishing — optional)
|
||
|
||
- **OSRM-Streckenführung** wie in Logistik. Bisher rechnen wir mit
|
||
Luftlinie × 1.3 (Aufschlag analog Logistik L1). In Phase 3 echte
|
||
Streckenführung über `App/assets/data/lg-roadnet.json` oder OSRM-API,
|
||
damit Schüler*innen verstehen: „durch Berge ist's länger als
|
||
Luftlinie".
|
||
- **Luftlinien-Mess-Tool** als Hilfsmittel: Schüler*in kann VOR dem Tap
|
||
auf zwei Punkte tippen und bekommt Luftlinie angezeigt — Hilfe für
|
||
Schätzung in Rechnungs-Maske.
|
||
|
||
---
|
||
|
||
## 4. Aufgabentypen
|
||
|
||
Vier Typen, in steigender Schwierigkeit:
|
||
|
||
| Typ | Beispiel | Hinweis-Form |
|
||
|-----|----------|--------------|
|
||
| **A** Hauptstadt direkt | „Fahre nach Paris" | Stadtname genannt |
|
||
| **B** Hauptstadt via Land | „Fahre in die Hauptstadt von Frankreich. Wie heißt sie?" (Single Choice) | Land genannt, Stadt erraten |
|
||
| **C** Stadt direkt (kein Hauptstadt) | „Fahre nach Hamburg" | Stadtname genannt |
|
||
| **D** Beschreibungs-basiert | „Fahre in die größte Stadt Skandinaviens" | Schüler*in muss schließen |
|
||
|
||
Levels:
|
||
- **L1 — DACH:** AT, DE, CH, IT, FR, BE, NL — Aufgabentypen A + B (8 Aufträge).
|
||
- **L2 — West-/Mitteleuropa:** + Skandinavien, Iberien — alle Typen (10 Aufträge).
|
||
- **L3 — Ganz Europa:** + Osten, Balkan, Türkei — alle Typen, Typ D häufiger (12 Aufträge).
|
||
|
||
---
|
||
|
||
## 5. Daten-Struktur
|
||
|
||
### `assets/data/cities.json`
|
||
|
||
```json
|
||
[
|
||
{
|
||
"id": "paris",
|
||
"title": "Paris",
|
||
"country": "Frankreich",
|
||
"isCapital": true,
|
||
"lat": 48.8566,
|
||
"lon": 2.3522,
|
||
"population_million": 2.1,
|
||
"infoText": "Paris liegt an der Seine. ...",
|
||
"imagePath": "assets/img/cities/paris.png",
|
||
"level": 1
|
||
}
|
||
]
|
||
```
|
||
|
||
Erstausstattung: 30–40 europäische Städte/Hauptstädte. Bilder dazu im
|
||
Bildstil (siehe Memory `reference_bildstil.md`). Mehrere existieren
|
||
schon in `App/sims/logistik/assets/cities/_original/` (paris.png,
|
||
berlin.png, madrid.png, london.png … ~50 Stück) — **diese
|
||
wiederverwenden**, nicht neu generieren.
|
||
|
||
### `assets/data/orders.json`
|
||
|
||
```json
|
||
[
|
||
{
|
||
"id": "ord-1",
|
||
"level": 1,
|
||
"type": "A",
|
||
"cityId": "paris",
|
||
"prompt": "Fahre nach Paris — Frankreichs Hauptstadt liegt an der Seine.",
|
||
"tariffPerKm": 1.20,
|
||
"fixedFee": 200
|
||
}
|
||
]
|
||
```
|
||
|
||
### Schätzungs-Schwellen für Bewertung
|
||
|
||
```js
|
||
const HIT_THRESHOLDS = {
|
||
PERFECT: 50, // < 50 km Abweichung = volle Punkte
|
||
OK: 200, // 50–200 km = halbe Punkte
|
||
// > 200 km = Fehlversuch
|
||
};
|
||
```
|
||
|
||
---
|
||
|
||
## 6. Tools
|
||
|
||
- **Leaflet 1.9.4** mit Carto Positron via tile-proxy
|
||
(`App/php/tile-proxy.php` existiert schon, von Logistik mitgenutzt)
|
||
- **Marker-Pins** für eigene Tipps, Ziel-Marker erscheint erst
|
||
NACH Auflösung
|
||
- **Distanz-Polyline** zwischen Tap und echter Position (Luftlinie)
|
||
- **Optional Phase 2:** Lineal-Tool zum Vorab-Messen
|
||
(Tap A + Tap B → Luftlinie in km anzeigen)
|
||
|
||
---
|
||
|
||
## 7. Wiederverwendung aus Logistik
|
||
|
||
| Was | Pfad |
|
||
|------|------|
|
||
| Tile-Proxy | `App/php/tile-proxy.php` |
|
||
| Bildstil-Generator | `App/sims/logistik/scripts/generate-splash-images.sh` |
|
||
| Stadt-Bilder | `App/sims/logistik/assets/cities/_original/` (~50 Stück, im Bildstil) |
|
||
| Routenführung (für Phase 3) | `App/assets/data/lg-roadnet.json` |
|
||
| Mulberry32-RNG (Order-Shuffle) | `App/sims/logistik/headless-runner.js` |
|
||
| Modal-Pattern (iPad-Polish) | Memory `feedback_ipad_overlay_pattern.md` |
|
||
|
||
**Wichtig:** Vor jeder Bildgenerierung Memory `reference_bildstil.md`
|
||
beachten — verbindlicher Prompt-Block. Einheitlicher Stil ist Pflicht.
|
||
|
||
---
|
||
|
||
## 8. Phasenplan
|
||
|
||
- [ ] **Phase 0** — Atlas baut Modul-Gerüst:
|
||
- DB: `module_info`-Eintrag (slug `busfahrt`, group „Wirtschaft &
|
||
Verkehr", Status `aufbau`)
|
||
- PHP-Wrapper `App/pages/busfahrt.php`
|
||
- Sim-Skelett `App/sims/busfahrt/{game.html, engine.js, README.md}`
|
||
- Landing-Card auf Schülerseite (LOCKED bis FREE-Stempel)
|
||
- [ ] **Phase 1** — MVP (Karte tippen, 3 Versuche, Info-Card, Punkte)
|
||
- [ ] **Phase 2** — Wirtschaft (Rechnungs-Maske, Konkurrenz, Budget)
|
||
- [ ] **Phase 3** — OSRM-Streckenführung, Lineal-Tool
|
||
|
||
Phase 1 sollte **nach einer einzigen Programmiersession spielbar** sein.
|
||
|
||
---
|
||
|
||
## 9. Pflicht-Konventionen (kurz)
|
||
|
||
- **Sprachregel 4a:** keine „spielen / Spiel / Spieler" — wir sagen
|
||
„Bearbeiter*in", „Tour", „Auftrag", „Fahrt". Memory
|
||
`feedback_keine_spielsprache.md`.
|
||
- **Easy-Sprache 4b:** alle Auftragstexte zweisprachig (normal +
|
||
Leichte Sprache via `pickText()`).
|
||
- **iPad-Pattern:** Modale mit `dvh`, safe-area, sticky-Buttons,
|
||
Float-✕. Memory `feedback_ipad_overlay_pattern.md`.
|
||
- **Bildstil:** Memory `reference_bildstil.md` — Flat Scandinavian
|
||
Illustration, verbindliche Farbpalette.
|
||
- **Inbox-Check vor Fertig:** Memory `feedback_inbox_check_vor_fertig.md`.
|
||
- **Keine KI im Produkt:** Auftragstexte und Konkurrenz-Preise
|
||
vorab fixiert oder parametrisch, KEIN Live-Aufruf an OpenAI/Anthropic.
|
||
|
||
---
|
||
|
||
## 10. Erste Schritte
|
||
|
||
1. Diese Mail lesen, Status auf `gelesen` setzen.
|
||
2. `App/docs/module-interface.md` Abschnitt 4 a/b/c lesen
|
||
(falls noch nicht gemacht).
|
||
3. Atlas-Mail in `_inbox/zentrale/` schreiben mit Empfangsbestätigung
|
||
und ggf. Rückfragen.
|
||
4. **WARTEN auf Atlas-Gerüst** (Modul-Skelett + DB-Eintrag) — das ist
|
||
Atlas-Territorium.
|
||
5. Sobald Gerüst steht: `cities.json` und `orders.json` als erste
|
||
Datenstrukturen anlegen — Bilder aus Logistik-Pool ziehen.
|
||
6. Phase 1 implementieren.
|
||
|
||
---
|
||
|
||
## 11. Komplexitäts-Erinnerung
|
||
|
||
Diese Sim soll **klein bleiben**. Wenn dir während der Implementierung
|
||
einfällt: „Och, könnte man auch noch X einbauen" → bitte ablehnen oder
|
||
in den Phasenplan schieben. Thomas baut bewusst auch einfache,
|
||
konzentrierte Sims — nicht alles muss Logistik-groß werden.
|
||
|
||
Faustregel: **MVP < 800 Zeilen game.html-JS, < 400 Zeilen engine.js**.
|
||
|
||
---
|
||
|
||
## 12. Glossar-Bedarf
|
||
|
||
Die Begriffe für die Glossar-DB werden später angefragt (siehe
|
||
Logistik-Pattern). Für die MVP-Phase sind keine Glossar-Verweise
|
||
zwingend — sobald Phase 2 (Wirtschaft) drankommt, lohnt sich
|
||
`Angebot`, `Tarif`, `Marge`, `Konkurrenz`, `Luftlinie`, `Maßstab`.
|
||
|
||
Lehrplan-Anfrage und Glossar-Anfrage **erst nach Phase 1**, sonst
|
||
verzettelst du dich.
|
||
|
||
— Logistik-Instanz (im Auftrag von Thomas)
|