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
Was genau sind Forks/Bedingungen und wie sind sie aufgebaut?

Forks/Bedingungen sind dafür da, wenn bestimmte Vorgänge abgefragt werden sollen. Folgende Beispielsituation soll verdeutlichen, wann Bedingungen Sinn machen können und wie ihre Funktionsweise ist:

Angenommen, eure Hauptcharaktere stehen vor einem großem Haus, vor dem wiederum ein Türsteher den Eingang blockiert. Dieser will eine Eintrittskarte sehen, bevor er eure Charaktere hineinlässt.
Haben eure Hauptcharaktere also eine Eintrittskarte, so soll er diese akzeptieren und die Gruppe hinein lassen.
Haben sie die Karte nicht, so soll er ihnen den Eintritt verweigern.

In einer Art "Pseudo-Code" würde das Ganze dann so aussehen:

Wenn (Eintrittskarte ist im Inventar)
{
  //Ja-Fall
  Gruppe hinein lassen;
}
Ansonsten
{
  //Nein-Fall
  Gruppe nicht herein lassen;
}

Ihr seht hier, vereinfacht dargestellt, die Funktionsweise einer Fork/Bedingung.
Erst wird definiert, was für einen Ja-Fall vorliegen soll (hier im Beispiel, ob die Gruppe eine Eintrittskarte hat).
Danach erfolgt das, was geschehen soll, wenn die Bedingung erfüllt ist (also ein Ja-Fall vorliegt. Hier im Beispiel würde der Gruppe der Eintritt gestattet)
Danach, separat für sich, legt ihr fest, was geschehen soll, wenn die Bedingung nicht erfüllt ist (Also ein Nein-Fall gegeben ist. Hier im Beispiel würde der Gruppe der Eintritt verwehrt werden)
In Maker-Code ausgedrückt würde der Code folgendermaßen aussehen:

Englische Makerversion Deutsche Makerversion
<>If<Eintrittskarte> (Have)
 <>
:Else Case
 <>
:End Case
<>Bedingung:<Eintrittskarte> (Im Besitz)
 <>
:Ansonsten
 <>
:End-Fall

Im grün hervorgehobenem Bereich würdet ihr nun das anlegen, was geschehen soll, wenn die Bedingung erfüllt ist. Hingegen im rot hervorgehobenem Bereich das, was ansonsten geschehen soll, wenn die Bedingung nicht erfüllt ist.

Info In zahlreichen Programmiersprachen gibt es ein ähnliches Gebilde, das sich "If-Schleife" nennt. Sie fragt ebenfalls gewisse Gegebenheiten ab, die erfüllt oder nicht erfüllt sein können. Je nach dem, ob sie erfüllt ist oder nicht, wird der entsprechende Teil der Schleife durchlaufen.