Discovery & Checkpoint
Gegeben ist folgender Programmausschnitt:
hp = 30
inventar = ["Heiltrank"]
if "Silberschluessel" in inventar:
print("Tuer oeffnet sich!")
else:
hp = hp - 12
print("Verschlossen! Falle ausgeloest.")Welchen Wert hat die Variable hp nach dem Durchlauf und was wird ausgegeben?
Parsons Puzzle
Setze das Skript in folgender chronologischer Reihenfolge zusammen:
1. Den Raumnamen ort und eine leere Liste inventar anlegen.
2. Den Raum betreten und die Begrüßung ausgeben.
3. Den gefundenen Gegenstand 'Silberschluessel' ins Inventar aufnehmen und den Fund melden.
4. Prüfen, ob 'Silberschluessel' im Inventar liegt, und nur in diesem Fall die Erfolgsmeldung eingerückt ausgeben.
Achtung: Behalte den Gegenstand im Inventar (nicht ablegen) und ignoriere überflüssige Blöcke!
Tipp: Benutze die Anfasser zum Verschieben und ⇥- / ⇥+ zum Einrücken.
Scaffolding & Bugfix
Im folgenden Spielzyklus haben sich zwei typische Logikfehler eingeschlichen:
1. In Zeile 7 wird hp überschrieben, statt den Schaden abzuziehen.
2. In Zeile 12 wird die Schleife bei Erreichen von 0 HP nicht gestoppt (Endlosschleife droht).
Repariere beide Stellen, sodass der Schaden korrekt abgezogen und die Schleife bei Game Over beendet wird.
Tipp: Passe den Code im Editor an und klicke auf „Ausführen & Prüfen“.
hp = 30
schaden = 12
aktiv = True
while aktiv:
hp = hp - schaden
print("Treffer! Aktuelle HP:", hp)
if hp <= 0:
print("Game Over!")
aktiv = False
Coding Challenge
Programmiere das Dungeon-Entscheidungsszenario nach diesen Vorgaben:
1. Lege die Variable hp mit dem Startwert 30 an.
2. Erstelle eine Liste inventar, die als einziges Element 'Silberschluessel' enthält.
3. Ziehe von hp den Fallenschaden 12 ab.
4. Prüfe mit einer if/else-Verzweigung:
- Wenn 'Silberschluessel' in inventar liegt, gib aus:
Status: Drachen-Labyrinth gemeistert mit HP: <hp> (wobei <hp> für den verbleibenden Wert steht).
- Andernfalls gib aus:
Status: Verloren im Drachen-LabyrinthTipp: Schreibe deinen Code in den Editor und klicke auf „Code testen“.
Test-Suite
hp = 30
inventar = ["Silberschluessel"]
hp -= 12
if "Silberschluessel" in inventar:
print("Status: Drachen-Labyrinth gemeistert mit HP:", hp)
else:
print("Status: Verloren im Drachen-Labyrinth")
Das modulare Text-Adventure
Erweitere dein Dungeon-Abenteuer nach eigenen Ideen!
Mögliche Features:
- Baue einen Bosskampf gegen den Gargoyle ein.
- Füge Richtungsentscheidungen (nord, sued, ost, west) mit input() hinzu.
- Baue Heiltränke ein, die bei Benutzung aus dem Inventar entfernt werden (inventar.remove(...)).
Tipp: Passe den Code an, führe ihn aus oder lade dein fertiges Programm als Python-Datei herunter.
Lektion vollständig abgeschlossen!
Du hast alle Phasen gemeistert und kannst hier im Sandbox-Labor frei weiterprogrammieren.