| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung |
| textadventure:wohin_gehen [2026/04/12 19:57] – celandir | textadventure:wohin_gehen [2026/05/21 09:47] (aktuell) – celandir |
|---|
| ====== Wohin soll es gehen? (Fallunterscheidung) ====== | ====== Wohin soll es gehen? (Fallunterscheidung) ====== |
| |
| Du kannst nun einen Ort oder eine Situation beschreiben und die Spieler:innen können etwas eingeben. Im nächsten Schritt müssen die Eingaben ausgewertet werden, um zu entscheiden, wie das Abenteuer weiter geht. Wir fangen mit einem einfachen Beispiel an. Du kannst das folgende Python-Programm durch Klick auf die Überschrift des Kastens direkt herunterladen und mit Thonny öffnen. Führe es aus und sieh was passiert. | Du kannst nun einen Ort oder eine Situation beschreiben und die Spieler:innen können etwas eingeben. Im nächsten Schritt müssen die Eingaben ausgewertet werden, um zu entscheiden, wie das Abenteuer weiter geht. Wir fangen mit einem einfachen Beispiel an. Du kannst das folgende Python-Programm durch Klick auf die Überschrift des Kastens direkt herunterladen und mit Thonny öffnen. |
| |
| <file python fallunterscheidung.py[enable_line_numbers="true"]> | <file python fallunterscheidung.py[enable_line_numbers="true"]> |
| print("Das Abenteuer geht weiter.") | print("Das Abenteuer geht weiter.") |
| </file> | </file> |
| | |
| | <div todo> |
| | Führe das Programm mit Thonny mehrmals aus und mache unterschiedliche Eingaben. Fasse zusammen, was Du beobachtest. |
| | </div> |
| |
| In dem Programm wird zunächst in den Zeilen 1 und 2 mit der Funktion ''print'' ein Ort (Waldlichtung) beschrieben. Mit der Funktion ''input'' wird in Zeile 3 gefragt, wohin die Spieler:in gehen möchte. Der Rückgabewert der Funktion (der eingegebene Text) wird dann der Variablen ''wahl'' zugewiesen. Das kennst du soweit schon. | In dem Programm wird zunächst in den Zeilen 1 und 2 mit der Funktion ''print'' ein Ort (Waldlichtung) beschrieben. Mit der Funktion ''input'' wird in Zeile 3 gefragt, wohin die Spieler:in gehen möchte. Der Rückgabewert der Funktion (der eingegebene Text) wird dann der Variablen ''wahl'' zugewiesen. Das kennst du soweit schon. |
| Beachte, dass für den **Vergleich** zwei Gleichheitszeichen (''=='') verwendet werden. Ein einzelnes Gleichheitszeichen ist eine Zuweisung (einer Variablen wird ein Wert zugewiesen), ein doppeltes Gleichheitszeichen ein Vergleich. Das ist ein Fehler, den man als Anfänger:in im Programmieren leider oft macht. | Beachte, dass für den **Vergleich** zwei Gleichheitszeichen (''=='') verwendet werden. Ein einzelnes Gleichheitszeichen ist eine Zuweisung (einer Variablen wird ein Wert zugewiesen), ein doppeltes Gleichheitszeichen ein Vergleich. Das ist ein Fehler, den man als Anfänger:in im Programmieren leider oft macht. |
| |
| In Zeile 7 steht nun ''elif'' (kurz für „else if“, d.h. „sonst, wenn“) als weiteres Schlüsselwort, wiederum gefolgt von einer Bedingung und einem Doppelpunkt. Es bdeutet, dass, wenn die ''if''-Bedingung in Zeile 4 //nicht// erfüllt wurde (also etwas anderes als „n“ eingegeben wurde), dann und nur dann geprüft wird, ob die ''elif''-Bedingung erfüllt wird. Wird diese Bedingung erfüllt, dann wird der folgende, eingerückte Block von Anweisungen ausgeführt, sonst übersprungen. Wenn die Spieler:in als kein „n“ eingegeben hat, dann wird geprüft, ob sie ein „o“ eingegeben hat. Falls ja, dann wird die verlassene Hütte beschrieben. | In Zeile 7 steht nun ''elif'' (kurz für „else if“, d.h. „sonst, wenn“) als weiteres Schlüsselwort, wiederum gefolgt von einer Bedingung und einem Doppelpunkt. Es bdeutet, dass, wenn die ''if''-Bedingung in Zeile 4 //nicht// erfüllt wurde (also etwas anderes als „n“ eingegeben wurde), dann und nur dann geprüft wird, ob die ''elif''-Bedingung erfüllt wird. Wird diese Bedingung erfüllt, dann wird der folgende, eingerückte Block von Anweisungen ausgeführt, sonst übersprungen. Wenn die Spieler:in also kein „n“ eingegeben hat, dann wird geprüft, ob sie ein „o“ eingegeben hat. Falls ja, dann wird die verlassene Hütte beschrieben. |
| |
| Wurde weder „n“ noch „o“ eingegeben, dann wird das Programm in Zeile 10 mit dem Schlüsselwort ''else'' („sonst“) fortgesetzt. Der ''else''-Zweig (die eingerückten Anweisungen nach dem ''else'') wird immer dann ausgeführt, wenn weder die ''if''-Bedingung noch die ''elif''-Bedingung erfüllt wurden. | Wurde weder „n“ noch „o“ eingegeben, dann wird das Programm in Zeile 10 mit dem Schlüsselwort ''else'' („sonst“) fortgesetzt. Der ''else''-Zweig (die eingerückten Anweisungen nach dem ''else'') wird immer dann ausgeführt, wenn weder die ''if''-Bedingung noch die ''elif''-Bedingung erfüllt wurden. |
| |
| In allen Fällen wird die Programmausführung mit der ersten wieder ausgerückten Anweisung, die auf die Fallunterscheidung folgt, fortgesetzt. Es wird also immer „Das Abenteuer geht weiter.“ in der Kommandozeile ausgegeben, was sachlich natürlich falsch ist, weil das Programm an dieser Stelle zuende ist. | In allen Fällen wird die Programmausführung mit der ersten wieder ausgerückten Anweisung, die auf die Fallunterscheidung folgt, fortgesetzt. Es wird also immer in Zeile 13 „Das Abenteuer geht weiter.“ in der Kommandozeile ausgegeben, was sachlich natürlich falsch ist, weil das Programm an dieser Stelle zuende ist. |
| |
| Bei einer Fallunterscheidung //muss// es immer einen ''if''-Zweig geben, es //kann// einen oder mehrere ''elif''-Zweige geben, die dann der Reihe nach abgeprüft werden. Am Ende //kann// es noch einen ''else''-Zweig geben, der immer dann ausgeführt wird, wenn //keine// der vorstehenden Bedingungen erfüllt wurde. | Bei einer Fallunterscheidung //muss// es immer einen ''if''-Zweig geben, es //kann// einen oder mehrere ''elif''-Zweige geben, die dann der Reihe nach abgeprüft werden. Am Ende //kann// es noch einen ''else''-Zweig geben, der immer dann ausgeführt wird, wenn //keine// der vorstehenden Bedingungen erfüllt wurde. Bei einer Fallunterscheidung wird nie mehr als ein Zweig ausgeführt. |
| |
| Beachte, dass bei Python die **Einrückungen** sehr wichtig sind, denn sie kennzeichnen, welche Anweisungen zu einem Zweig (oder Block) gehören. Es ist wichtig, dass Du immer gleichmäßig einrückst, üblicherweise um **4 Leerzeichen**. Wenn Du ungleichmäßig oder gar nicht einrückst, dann funktioniert das Programm nicht korrekt. Falsche Einrückungen sind ein weiterer verbreiteter Fehler bei Anfänger:innen. | Beachte, dass bei Python die **Einrückungen** sehr wichtig sind, denn sie kennzeichnen, welche Anweisungen zu einem Zweig (oder Block) gehören. Es ist wichtig, dass Du immer gleichmäßig einrückst, üblicherweise um **4 Leerzeichen**. Wenn Du ungleichmäßig oder gar nicht einrückst, dann funktioniert das Programm nicht korrekt. Falsche Einrückungen sind ein weiterer verbreiteter Fehler bei Anfänger:innen. |
| |
| Nächste Lektion: [[eigene_funktionen]] | <div todo> |
| | Erweitere nun dein Textadventure so, dass du mehrere Orte hast, zwischen denen man wechseln kann. |
| | </div> |
| | |
| | Link zum Python-Handbuch: [[https://openbook.rheinwerk-verlag.de/python/05_001.html#u5.1]] |
| | |
| | Nächste Lektion: [[wiederhole_dich|Wiederhole dich!]] |
| |
| |