Tourismustal: Kosten-Check - Realitaets-Quiz mit Bonus-Budget
Kostenwahrheit als Lernmoment statt Fussnote: Nach dem Erst-Bau von Lift/Gondel/Hotel/Beschneiung/Bushaltestelle erscheint (Event-Pacing) je einmalig ein Kosten-Check: Info mit echtem AT-Beispiel + Schaetzfrage (mehr/weniger). Richtig = +2.000 Euro Bank-Bonus, falsch = nur die Aufloesung. Verifizierte Zahlen: Leppleskofel-6er 12 Mio. (Dolomiten- stadt), Patscherkofelbahn 58 geplant -> 83,2 Mio. bezahlt (Stadt Ibk), WKO-Hotelrichtwerte 220-270k/Zimmer, Schneekanone 27-35k + 1 Mio./ Pistenkm, Ski Arlberg Tageskarte 81,50. Erster Check traegt den Modell-Hinweis (Preise verkleinert, Verhaeltnisse stimmen). Antwortrichtungen gemischt (3x mehr, 2x weniger). Quiz-Karten sind Entscheidungen -> immer modal, auch im Audio-Modus. Schulbuch Seite 2: Daten-Box 'Was kostet das wirklich?' + Meta-Aufgabe D (Modellkompetenz) + Quellen 8-12. Modulseite: Vereinfachungs-Hinweis in long_desc (SQL lokal+prod). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -250,6 +250,14 @@ function g(string $slug, string $label): string {
|
||||
<div class="b-box b-daten"><b>📊 Echte Zahlen:</b>
|
||||
Ein Wintergast gibt in Österreich im Schnitt <b>193 €/Tag</b> aus,
|
||||
ein Sommergast <b>156 €/Tag</b> – also nur rund 80 %. <span class="q">[4]</span></div>
|
||||
<div class="b-box b-daten"><b>📊 Was kostet das wirklich?</b>
|
||||
Die Simulation rechnet mit stark verkleinerten Zahlen. Real gilt:
|
||||
6er-Sessellift ca. <b>5–12 Mio. €</b> <span class="q">[8]</span> ·
|
||||
Patscherkofelbahn Innsbruck: geplant 58, bezahlt <b>83,2 Mio. €</b>
|
||||
<span class="q">[9]</span> · Hotelzimmer-Neubau (4★)
|
||||
<b>220.000–270.000 €/Zimmer</b> <span class="q">[10]</span> ·
|
||||
eine Schneekanone <b>27.000–35.000 €</b> <span class="q">[11]</span> ·
|
||||
Tageskarte Ski Arlberg <b>81,50 €</b> <span class="q">[12]</span>.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b-box b-sim"><b>🎮 In der Simulation:</b> Der <b>Skipass-Regler</b>
|
||||
@@ -268,6 +276,10 @@ function g(string $slug, string $label): string {
|
||||
schlechten Tag. Welches Glied der Kette war der Engpass? Was würdest du bauen?</li>
|
||||
<li><span class="b-stufe schwer">C</span>„Viele Gäste = viel Gewinn" – stimmt
|
||||
das immer? Begründe mit Betriebskosten und Zufriedenheit.</li>
|
||||
<li><span class="b-stufe schwer">D</span>Im Spiel begegnet dir der
|
||||
💶 <b>Kosten-Check</b> mit echten Preisen. Vergleiche: Gondelbahn im Spiel
|
||||
22.000 € – real bis über 80 Mio. €. Warum verwendet die Simulation
|
||||
kleinere Zahlen? Was bildet sie trotzdem richtig ab – und was nicht?</li>
|
||||
</ol>
|
||||
</div>
|
||||
<?php if ($LEHRER): ?>
|
||||
@@ -464,6 +476,16 @@ function g(string $slug, string $label): string {
|
||||
<a href="https://www.srf.ch/news/schweiz/schneesaison-ist-fast-40-tage-kuerzer-als-frueher" target="_blank" rel="noopener">srf.ch</a><br>
|
||||
[6] GeoSphere Austria: Klimaportal Schnee —
|
||||
<a href="https://klimaportal.geosphere.at/informationsportal-klimawandel/schnee.html" target="_blank" rel="noopener">klimaportal.geosphere.at</a><br>
|
||||
[8] Dolomitenstadt: 6er-Sessellift Leppleskofel, 12 Mio. € (2021) —
|
||||
<a href="https://www.dolomitenstadt.at/2021/08/26/baustart-fuer-den-hoechsten-skilift-osttirols/" target="_blank" rel="noopener">dolomitenstadt.at</a><br>
|
||||
[9] Stadt Innsbruck: Kostenaufstellung Patscherkofelbahn (2022) —
|
||||
<a href="https://ibkinfo.at/media/13174/220131_kostenaufstellung_patscherkofel.pdf" target="_blank" rel="noopener">ibkinfo.at</a><br>
|
||||
[10] WKO: Investitionsrichtwerte Hotellerie 2024 —
|
||||
<a href="https://www.wko.at/oe/tourismus-freizeitwirtschaft/hotellerie/investionsrichtwerte" target="_blank" rel="noopener">wko.at</a><br>
|
||||
[11] Salzburgwiki/Marmota Maps: Kosten Schneekanonen —
|
||||
<a href="https://wiki.sn.at/wiki/Beschneiungsanlage" target="_blank" rel="noopener">wiki.sn.at</a><br>
|
||||
[12] Bergwelten: Skiticket-Preise 2025/26 —
|
||||
<a href="https://www.bergwelten.com/a/preise-skitickets" target="_blank" rel="noopener">bergwelten.com</a><br>
|
||||
[7] Fallstudie Serfaus-Fiss-Ladis —
|
||||
<a href="https://www.brand-logic.com/en/spectrum/gekommen-um-zu-bleiben/" target="_blank" rel="noopener">brand-logic.com</a>
|
||||
</p>
|
||||
|
||||
@@ -687,6 +687,79 @@ export const EVENTS = [
|
||||
},
|
||||
];
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// 💶 Kosten-Checks: Realitäts-Quiz zu echten österreichischen Kosten.
|
||||
// Erscheint einmalig nach dem Erst-Bau des Trigger-Typs (mit Event-Pacing).
|
||||
// Richtig = Bonus-Budget; falsch = nur die Auflösung (Lernen ohne Strafe).
|
||||
// Zahlen verifiziert 2026-07-13, Quellen: Schulbuch-Kapitel + QUELLEN.md.
|
||||
export const KOSTEN_CHECKS = [
|
||||
{
|
||||
id: 'kc-lift', trigger: 'lift', title: 'Kosten-Check: Sessellift',
|
||||
info: 'Dein Sessellift hat im Spiel 12.000 € gekostet. In echt: Der neue '
|
||||
+ '6er-Sessellift auf den Leppleskofel in Osttirol (kuppelbar, mit '
|
||||
+ 'Sitzheizung und Wetterhaube) wurde 2021 gebaut.',
|
||||
frage: 'Was hat er wirklich gekostet – mehr oder weniger als 5 Millionen Euro?',
|
||||
optionen: ['Mehr', 'Weniger'], richtig: 0,
|
||||
aufloesung: 'Rund 12 MILLIONEN Euro – tausendmal so viel wie im Spiel! '
|
||||
+ 'Auch einfachere kuppelbare Sessellifte kosten etwa 5 bis 7 Millionen. '
|
||||
+ 'Eine Bahn ist die größte Investition, die ein Skigebiet tätigen kann – '
|
||||
+ 'real dauert es 15 bis 30 Jahre, bis sie sich bezahlt macht.',
|
||||
bonus: 2000,
|
||||
},
|
||||
{
|
||||
id: 'kc-gondola', trigger: 'gondola', title: 'Kosten-Check: Gondelbahn',
|
||||
info: 'Die Patscherkofelbahn bei Innsbruck wurde 2017 neu gebaut – '
|
||||
+ 'geplant waren 58 Millionen Euro.',
|
||||
frage: 'Was stand am Ende auf der Rechnung – mehr oder weniger als 70 Millionen?',
|
||||
optionen: ['Mehr', 'Weniger'], richtig: 0,
|
||||
aufloesung: '83,2 Millionen Euro – über 25 Millionen mehr als geplant! '
|
||||
+ 'Große Bauprojekte werden oft teurer als gedacht. Zum Vergleich: Am '
|
||||
+ 'Arlberg kostete 2016 ein Paket aus vier neuen Bahnen (darunter die '
|
||||
+ 'Flexenbahn Zürs–Stuben) zusammen 45 Millionen Euro.',
|
||||
bonus: 2000,
|
||||
},
|
||||
{
|
||||
id: 'kc-hotel', trigger: 'hotel', title: 'Kosten-Check: Hotelzimmer',
|
||||
info: 'Dein Hotel hat im Spiel 9.000 € gekostet. Real rechnet die '
|
||||
+ 'österreichische Wirtschaftskammer beim Neubau eines 4-Sterne-Hotels '
|
||||
+ 'pro einzelnem Zimmer (Bau + Einrichtung).',
|
||||
frage: 'Was kostet EIN Zimmer – mehr oder weniger als 500.000 €?',
|
||||
optionen: ['Mehr', 'Weniger'], richtig: 1,
|
||||
aufloesung: '220.000 bis 270.000 Euro pro Zimmer (4 Sterne; 3 Sterne: '
|
||||
+ '140.000–190.000 €). Ein Hotel wie deines mit 60 Betten (~30 Zimmer) '
|
||||
+ 'kostet real also 7 bis 8 MILLIONEN Euro – fast tausendmal mehr als '
|
||||
+ 'im Spiel.',
|
||||
bonus: 2000,
|
||||
},
|
||||
{
|
||||
id: 'kc-snow', trigger: 'snow', title: 'Kosten-Check: Beschneiung',
|
||||
info: 'Deine Beschneiungsanlage hat im Spiel 6.000 € gekostet. In echt '
|
||||
+ 'braucht ein Skigebiet viele einzelne Schneekanonen plus Leitungen, '
|
||||
+ 'Pumpen und Speicherteiche.',
|
||||
frage: 'Was kostet EINE einzige Propeller-Schneekanone – mehr oder weniger als 10.000 €?',
|
||||
optionen: ['Mehr', 'Weniger'], richtig: 0,
|
||||
aufloesung: 'Rund 27.000 bis 35.000 Euro – eine einzige echte Kanone '
|
||||
+ 'kostet also das Fünffache deiner ganzen Spiel-Anlage! Komplett '
|
||||
+ 'beschneit kostet ein einziger Pistenkilometer etwa 1 Million Euro '
|
||||
+ '(Branchenverband Seilbahnen Schweiz) – dazu Wasser und Strom in '
|
||||
+ 'jedem Winter.',
|
||||
bonus: 2000,
|
||||
},
|
||||
{
|
||||
id: 'kc-skipass', trigger: 'access', title: 'Kosten-Check: Skipass',
|
||||
info: 'Im Spiel stellst du den Skipass zwischen 15 und 45 € ein. '
|
||||
+ 'Schau auf die Realität: Ski Arlberg ist Österreichs größtes '
|
||||
+ 'zusammenhängendes Skigebiet.',
|
||||
frage: 'Was kostet dort die Tageskarte für Erwachsene (Saison 2025/26) – mehr oder weniger als 100 €?',
|
||||
optionen: ['Mehr', 'Weniger'], richtig: 1,
|
||||
aufloesung: '81,50 € in der Hauptsaison (in der Topsaison 83 €). '
|
||||
+ 'Skifahren ist real fast doppelt so teuer wie das Maximum in deinem '
|
||||
+ 'Spiel – und die Preise steigen seit Jahren. Auch das gehört zur '
|
||||
+ 'Frage, wer sich Wintersport noch leisten kann.',
|
||||
bonus: 2000,
|
||||
},
|
||||
];
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Lehrplan-Wissen je Gebäude: kurze, verdaubare Bausteine, verankert im
|
||||
// GW-Lehrplan 2023 (Standortfaktoren, Angebot/Nachfrage, Wertschöpfung,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// Audio und UI und treibt die laufende Zeit an (einstellbare Zeitskala).
|
||||
|
||||
import { createState, simulateDay, canPlace, place, demolish, upgrade, ecoUpgrade, buildingReport } from './model.js';
|
||||
import { BUILDINGS, EVENTS, MILESTONES, DECISIONS, HINTS, ADVISOR, BUILD_INFO } from './data.js';
|
||||
import { BUILDINGS, EVENTS, MILESTONES, DECISIONS, HINTS, ADVISOR, BUILD_INFO, KOSTEN_CHECKS } from './data.js';
|
||||
import { IsoRenderer } from './iso.js';
|
||||
import { UI } from './ui.js';
|
||||
import { telemetry } from './telemetry.js';
|
||||
@@ -193,6 +193,13 @@ function onTileTap(c, r, pointerType) {
|
||||
state.firedEvents.add(infoId);
|
||||
ui.showCard({ id: infoId, ...BUILD_INFO[type], sound: 'card' });
|
||||
}
|
||||
// 💶 Kosten-Check vormerken: Realitäts-Quiz zum gerade gebauten Typ
|
||||
// (erscheint später mit Abstand übers Event-Pacing, nicht sofort)
|
||||
const kc = KOSTEN_CHECKS.find(k => k.trigger === type);
|
||||
if (kc && !state.firedEvents.has(kc.id)) {
|
||||
state.firedEvents.add(kc.id);
|
||||
(state.kcQueue ??= []).push(kc.id);
|
||||
}
|
||||
}
|
||||
|
||||
// ===== Live-View für Lehrkräfte (Plattform-Hook) =====
|
||||
@@ -269,6 +276,29 @@ function submitAssessment(completed) {
|
||||
} catch { /* offline/Standalone: still ok */ }
|
||||
}
|
||||
|
||||
// 💶 Kosten-Check auflösen: richtig = Bonus-Budget, falsch = nur Lerninfo
|
||||
function resolveKostenCheck(kc, picked) {
|
||||
const richtig = picked === kc.richtig;
|
||||
if (richtig) {
|
||||
state.money += kc.bonus;
|
||||
const b = state.buildings[0];
|
||||
if (b) renderer.addFloat(`💶 +${kc.bonus.toLocaleString('de-AT')} €`, '#3f8f5e', b.c + 0.5, b.r - 0.5, true);
|
||||
}
|
||||
ui.showCard({
|
||||
id: kc.id + '-aufloesung', transient: true, forceModal: true,
|
||||
icon: richtig ? '✅' : '📚',
|
||||
sound: richtig ? 'success' : 'card',
|
||||
title: richtig
|
||||
? `Richtig! Gut kalkuliert: +${kc.bonus.toLocaleString('de-AT')} € Bonus`
|
||||
: 'Nicht ganz – aber jetzt weißt du es!',
|
||||
text: kc.aufloesung + (richtig
|
||||
? '\n\n🏦 Die Bank ist beeindruckt von deinem Realitätswissen und gewährt bessere Konditionen.'
|
||||
: ''),
|
||||
});
|
||||
ui.updateKPIs();
|
||||
telemetry.log('kosten_check_result', { id: kc.id, richtig });
|
||||
}
|
||||
|
||||
// ---------- Karten: Meilensteine, Sieg, Entscheidungen, Events ----------
|
||||
function checkEvents() {
|
||||
// Meilensteine: Gebäude Schritt für Schritt freischalten (Szene 1)
|
||||
@@ -317,6 +347,32 @@ function checkEvents() {
|
||||
// Pacing-Fenster: erst nach Schonfrist und mit Mindestabstand zur letzten Karte
|
||||
const calmEnough = state.day >= EVENT_GRACE_DAYS
|
||||
&& (state.day - state.lastInterruptDay) >= EVENT_COOLDOWN;
|
||||
// 💶 Kosten-Check: Realitäts-Quiz (Info + Schätzfrage, Bonus bei Treffer).
|
||||
// Läuft im selben Ruhe-Fenster wie Entscheidungen – nie im Karten-Stakkato.
|
||||
if (calmEnough && state.kcQueue?.length) {
|
||||
const kc = KOSTEN_CHECKS.find(k => k.id === state.kcQueue[0]);
|
||||
state.kcQueue.shift();
|
||||
if (kc) {
|
||||
state.lastInterruptDay = state.day;
|
||||
const first = !state.firedEvents.has('kc-modellhinweis');
|
||||
state.firedEvents.add('kc-modellhinweis');
|
||||
const vorspann = first
|
||||
? 'Übrigens: Die Preise in dieser Simulation sind stark verkleinert und '
|
||||
+ 'vereinfacht, damit du schnell entscheiden kannst. Die VERHÄLTNISSE '
|
||||
+ 'stimmen – die echten Zahlen sind viel größer. Zeig, dass du sie kennst:\n\n'
|
||||
: '';
|
||||
ui.showCard({
|
||||
id: kc.id, icon: '💶', title: kc.title,
|
||||
text: vorspann + kc.info + '\n\n❓ ' + kc.frage,
|
||||
choices: [
|
||||
{ label: kc.optionen[0], onPick: () => resolveKostenCheck(kc, 0) },
|
||||
{ label: kc.optionen[1], onPick: () => resolveKostenCheck(kc, 1) },
|
||||
],
|
||||
});
|
||||
telemetry.log('kosten_check', { id: kc.id });
|
||||
return;
|
||||
}
|
||||
}
|
||||
// Entscheidungs-Karten: A/B-Wahl mit echten Folgen (je einmal, zeitversetzt)
|
||||
if (calmEnough) for (const d of DECISIONS) {
|
||||
if (state.firedEvents.has(d.id)) continue;
|
||||
|
||||
Reference in New Issue
Block a user