Synthese-Projekt: Kontrollstrukturen & Listen

Das Text-Adventure

Fortschritt:
PHASE 1

Discovery & Checkpoint

Video & Einstieg
Verständnis-Check Beantworte die Frage zum Video

Gegeben ist folgender Programmausschnitt:

hp = 35
inventar = ["Heiltrank"]

if "Magische Rune" in inventar:
    print("Tuer oeffnet sich!")
else:
    hp = hp - 8
    print("Verschlossen! Falle ausgeloest.")

Welchen Wert hat die Variable hp nach dem Durchlauf und was wird ausgegeben?

PHASE 2

Parsons Puzzle

Struktur & Logik
Aufgabe Bringe die Bausteine per Drag & Drop in Reihenfolge

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 'Magische Rune' ins Inventar aufnehmen und den Fund melden.
4. Prüfen, ob 'Magische Rune' 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.

Dein Programm (Lösung) Hier die Zeilen in die richtige Reihenfolge bringen
Aussortierte Bausteine (Distraktoren) Hierhin fehlerhafte / nicht benötigte Zeilen ziehen
PHASE 3

Scaffolding & Bugfix

Geführte Praxis
Aufgabe Finde und behebe die Fehler im Code

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“.

script.py
Python 3.11
Konsole (Output)

                    

Musterlösung:
hp = 35
schaden = 8
aktiv = True

while aktiv:
    hp = hp - schaden
    print("Treffer! Aktuelle HP:", hp)
    
    if hp <= 0:
        print("Game Over!")
        aktiv = False
PHASE 4

Coding Challenge

Eigenständiges Coden
Ziel-Aufgabe Löse die Aufgabe und bestehe alle Tests

Programmiere das Dungeon-Entscheidungsszenario nach diesen Vorgaben:

1. Lege die Variable hp mit dem Startwert 35 an.
2. Erstelle eine Liste inventar, die als einziges Element 'Magische Rune' enthält.
3. Ziehe von hp den Fallenschaden 8 ab.
4. Prüfe mit einer if/else-Verzweigung:
   - Wenn 'Magische Rune' 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-Labyrinth

Tipp: Schreibe deinen Code in den Editor und klicke auf „Code testen“.

solution.py
Python 3.11
Konsole (Output)

                    

Test-Suite

Musterlösung:
hp = 35
inventar = ["Magische Rune"]

hp -= 8

if "Magische Rune" in inventar:
    print("Status: Drachen-Labyrinth gemeistert mit HP:", hp)
else:
    print("Status: Verloren im Drachen-Labyrinth")
PHASE 5

Das modulare Text-Adventure

Kreatives Sandbox-Labor
Freies Experimentieren Erweitere deinen Code nach deinen eigenen Ideen

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.

programm.py
Python 3.11
Konsole (Output)

                    

Lektion vollständig abgeschlossen!

Du hast alle Phasen gemeistert und kannst hier im Sandbox-Labor frei weiterprogrammieren.

Zur Übersicht
Lektion beendet
>_

Benutzereingabe (input)

Dein Python-Programm wartet auf eine Eingabe

Tippe deine Eingabe ein und drücke Enter ↵ oder klicke auf Absenden.