Angenommen, du möchtest, dass es nach der Hauptmahlzeit noch ein Nachtisch angeboten werden soll. Ein erster Versuch könnte so aussehen:

Skript 2.1

Was willst Du essen?

+ Pizza
    Du vertilgst ein Stück Pizza.

+ Gemüseauflauf
    Du lässt Dir eine Portion Gemüseauflauf schmecken.

Was möchtest Du zum Nachtisch?

+ Eis
    Du genießt eine Kugel Eis.

+ Obstsalat
    Du löffelst eine Schale Obstsalat.

Das funktioniert aber nicht! Anstatt, dass erst nach der Hauptmahlzeit die Nachtisch-Möglichkeiten vorgeschlagen werden, sehen wir alle Optionen von Hauptgericht und Nachtisch zugleich und von Anfang an:

Der Grund ist einfach: Woher soll der Computer wissen, dass die Zeile "Was möchtest Du zum Nachtisch?" nicht noch zur Entscheidung "Gemüseauflauf" gehört?

Es gibt zwei Möglichkeiten, dieses Problem zu lösen. Die erste besteht darin, vor die Zeile ein Minus-Zeichen zu setzen. Das Zeichen markiert das Ende einer Auswahl. Egal, was gewählt wurde, ob Pizza oder Gemüseauflauf, es geht auf jeden Fall hier weiter.

Skript 2.2

Was willst Du essen?

+ Pizza
    Du vertilgst ein Stück Pizza.

+ Gemüseauflauf
    Du lässt Dir eine Portion Gemüseauflauf schmecken.

- Was möchtest Du zum Nachtisch?

+ Eis
    Du genießt eine Kugel Eis.

+ Obstsalat
    Du löffelst eine Schale Obstsalat.


Die zweite, bei komplizierteren Skripten elegantere Variante besteht darin, die Nachtischauswahl in einen eigenen Abschnitt (Knoten, Knot) zu verpacken. Das zeigt das folgende Skript.

Skript 2.3

Was willst Du essen?
 
+ Pizza
    Du vertilgst ein Stück Pizza.
    -> nachtisch

+ Gemüseauflauf
    Du lässt Dir eine Portion Gemüseauflauf schmecken.
    -> nachtisch

=== nachtisch ===
Was möchtest Du zum Nachtisch?

+ Eis
    Du genießt eine Kugel Eis.

+ Obstsalat
    Du löffelst eine Schale Obstsalat.
Die Nachtischauswahl steht jetzt in einem eigenen Abschnitt, dessen Beginn durch === nachtisch === markiert ist.
Und mit dem Sprung -> nachtisch gelangen wir genau in diesen Abschnitt.

Inky meckert, wenn es innerhalb eines Abschnittes eine Sackgasse gibt, es also nicht mehr weitergeht. Das ist in dem letzten Script nach der Auswahl eines Nachtisches der Fall, dann bekommt ihr eine Fehlermeldung wie diese:
Line 15: ran out of content. Do you need a '-> DONE' or '-> END'?

Abhilfe verschafft ein spezieller Sprung nach -> END, der signalisiert, dass das Programm an dieser Stelle abgeschlossen ist:

Skript 2.4

Was willst Du essen?
 
+ Pizza
    Du vertilgst ein Stück Pizza.
    -> nachtisch

+ Gemüseauflauf
    Du lässt Dir eine Portion Gemüseauflauf schmecken.
    -> nachtisch

=== nachtisch ===
Was möchtest Du zum Nachtisch?

+ Eis
   Du genießt eine Kugel Eis.
   -> END

+ Obstsalat
   Du löffelst eine Schale Obstsalat.
   -> END


Zuletzt geändert: Mittwoch, 4. September 2024, 05:32