Books  Über Bedingungen (Forks)

Bedingungen sind immer dann interessant, wenn es um etwas kompliziertere Aufträge geht oder es bei gewissen Ereignissen Abzweigungen geben soll, beispielsweise wenn sich eine Tür nur dann öffnen soll, wenn eure Charaktere einen bestimmten Gegenstand, beispielsweise einen Schlüssel oder eine Keykarte haben. Doch... was genau sind die Bedingungen oder Forks, wie sie genannt werden?

Books Was genau sind Forks/Bedingungen und wie sind sie aufgebaut?
Books Besondere Arten von Schleifen mit Forks/Bedingungen
Besondere Arten von Schleifen mit Forks/Bedingungen

Nur Bedingungen, die gewisse Umstände abfragen, sind auf Dauer ein bisschen mager für ein Rollenspiel. Auch, wenn man sich Programmiersprachen wie beispielsweise Java und C/C++ anschaut, so bieten diese in der Beziehung einiges mehr an Möglichkeiten, die im Folgendem mit dem Maker nachgebaut werden sollen:

Eine For-Schleife

Die Funktion einer For-Schleife besteht darin, dass zuerst eine Zähler-Variable auf einen Startwert gesetzt wird. Danach folgt die Deklaration einer Bedingung. So lange diese Bedingung erfüllt ist, soll die For-Schleife durchlaufen werden und nach jedem Durchlauf der Zähler verändert (in der Regel erhöht oder verringert) werden. In Java und C++ sieht eine For-Schleife in Code-Form wie folgt aus:

for (int counter = 0; counter < 10; counter + 1)
{
  //Inhalt der For-Schleife
}

In diesem Beispielcode, der in Java wie auch in C/C++ identisch ist, wird zuerst eine Variable Counter bestimmt, die als Startwert "0" (Null) hat (int ist der Standard-Datentyp für ganze Zahlen). Die Bedingung folgt direkt daneben und sagt aus, dass die Variable "counter" kleiner als 10 sein muss, damit die Bedingung erfüllt ist. Direkt daneben wiederum folgt die Anweisung, dass nach einmaligem Schleifendurchlauf die Variable "counter" um den Wert "1" erhöht wird. Der eigentliche Code innerhalb der For-Schleife würde sich innerhalb der beiden geschreiften Klammern befinden (an der Stelle des grün hervorgehobenen Bereichs).
Nur... wie lässt sich eine Schleife im Maker nachbauen, die von der Funktionsweise her der oben als Codebeispiel aufgeführten entspricht?

Zuerst einmal muss die For-Schleife von oben in ihre einzelnen Bestandteile zerlegt werden, die da wären:

. Eine Zählervarialbe : Damit eine For-Schleife nicht zu einer Endlosschleife wird, kann es eine Zählervariable geben, die noch in der Bedingung abgefragt wird, ob und wie sie sich im Vergleich zu einem bestimmten Wert verhält.
Eine Zählervariable muss nicht zwingend angelegt werden.
 
. Eine Bedingung : Sie bestimmt, ob es zu weiteren Schleifendurchläufen kommen wird oder nicht. Ist die Bedingung nicht erfüllt, soll ohne Schleifendurchlauf sofort aus der Schleife ausgebrochen und mit dem nach ihr folgendem Code fortgefahren werden.
 
. Eine Endlosschleife : Da der Inhalt einer For-Schleife immer dann wiederholend ausgeführt wird, so lange die Bedingung erfüllt ist, muss es eine "Endlos-Schleife" geben, die für die Wiederholung sorgt.
 
. Veränderung der Zählervariable : Das allerletzte Stückchen Code innerhalb der im Maker nachgebauten For-Schleife muss (wenn es eine Zählervariable gibt) die "Anweisung zur Veränderung der Zählervariable" sein. Schließlich soll ja irgendwann ein bestimmter Zählerstand erreicht sein.
Eine Veränderung der Zählervariable muss nur dann angelegt werden, wenn es eine Zählervariable gibt. Fehlt diese, macht eine Veränderung einer Zählervariable keinen Sinn.
 
. Ausbruch aus der Endlosschleife : Sobald eine Bedingung nicht mehr erfüllt ist, soll aus der Schleife ausgebrochen werden. Eine sogenannte "Break-Anweisung" würde hier zum Einsatz kommen.
Diese ist zwingend erforderlich, damit es im Spiel zu keiner Endlosschleife kommt und das Spiel "hängen" bleibt...

Nun, da ihr wisst, aus welchen Teilen eine For-Schleife besteht, geht es eigentlich nur noch darum, welche Funktionen des Makers zur Erstellung der genannten Teile notwendig sind (Erklärungen der einzelnen Funktionen sind angelinkt).

1. Zähler setzen : Zuerst muss eine Variable ausgewählt und ihr ein Startwert überreicht werden. Dies macht ihr mit der Funktion "Change Variable/Variable(n) ändern", die auf der Registerkarte 1 der Ereigniskommandos zu finden ist.
 
2. Die Endlosschleife : Direkt unter der Zählervariable folgt nun die Endlosschleife, deren Inhalt kontinuierlich wiederholt werden soll. Eine Endlosschleife erstellt ihr mit dem Ereigniskommando "Cycle/Zyklus (Schleife) erstellen", zu finden auf der Registerkarte 3 der Ereigniskommandoliste.
 
3. Die Bedingung : Direkt unter dem von euch angelegtem Code muss nun noch eine "Fork/Bedingung" angelegt werden (die entsprechende Funktion befindet sich in der Liste der Ereigniskommandos, auf der dritten Registerkarte), die letztlich abfragt, wie sich der Zähler verhalten soll. Folgende Möglichkeiten habt ihr zur Abfrage von Zählerwerten:
 
. same/gleich: Der Zähler muss, damit die selbst gebastelte For-Schleife wiederholt wird, genau einen gewissen Wert erreicht haben.
Das Gegenteil hierzu ist "others/anders"
 
. above/größer oder gleich: Der Zähler muss, um die Bedingung zu erfüllen, größer oder gleich dem angegebenem Wert sein.
Das Gegenteil hierzu ist "smaller/kleiner"
 
. below/kleiner oder gleich: Der Zähler muss, um die Bedingung zu erfüllen, kleiner oder gleich dem angegebenem Wert sein.
Das Gegenteil hierzu ist "bigger/größer"

Wichtig ist, dass ihr einen "ELSE Case/Ansonsten-Fall" hinzufügt (also beim Anlegen der Fork/Bedingung im entsprechendem Kästchen das Häkchen setzen. Weil das braucht ihr im Folgendem...
 

4. Der zu wiederholende Code : Wie ihr wisst, wird in einer Fork/Bedingung zuerst der Ja-Fall definiert, dann erfolgt die Trennung durch "ELSE-Case/Ansonsten" und dann der Nein-Fall. Widmen wir uns nun dem Ja-Fall.
Hier, im Ja-Fall der Bedingung, soll der von euch vorgesehene Code, der kontinuierlich wiederholt werden soll, angelegt werden. An dieser Stelle sei eurer Kreativität freien Lauf gelassen, da es je nach Projekt und euren Vorstellungen unterschiedlichste Dinge geben kann, die wiederholt werden sollen...
 
5. Den Zähler verändern : Direkt nach dem von euch innerhalb des Ja-Falls angelegtem Code soll nun der Zähler verändert (beispielsweise gesteigert) werden.
Dies macht ihr, wie schon beim Anlegen des Zählers zuvor, mit der Funktion "Change Variable/Variable(n) ändern", die auf der Registerkarte 1 der Ereigniskommandos zu finden ist. Beachtet, dass ihr hier die selbe Variable wie die für den Zähler nehmt.
Mehr ist für den Ja-Fall nicht erforderlich, da nun, nachdem der Zähler verändert wurde, ein erneuter Schleifendurchlauf vorgenommen werden würde.
 
6. Der Schleifenausbruch : Widmen wir uns nun dem Fall, dass die Bedingung einmal nicht erfüllt sein sollte. Dann nämlich soll ja aus der Schleife ausgebrochen und mit dem Code unterhalb der Schleife (Cycle/Zyklus) fortgefahren werden. Es geht also nun um den Bereich direkt unterhalb des Wörtchens "ELSE-Case/Ansonsten".
Hier legt ihr einfach ein Ereigniskommando namens "Break Cycle/Zyklus (Schleife) unterbrechen" an, das ihr in der Liste der Ereigniskommandos auf der dritten Registerkarte findet.
 
Info An diejenigen unter euch, die über Grundkenntnisse der Programmierung verfügen:
Wenn ihr den Zähler und den Ja-Fall der Bedingung leer lasst, habt ihr eine "Do-While-Schleife", die immer (!) einmal mindestens durchlaufen wird.