Inhaltsverzeichnis
Manchmal möchten man in Sätzen einfach zufällige zwischen einigen Elementen wählen und es ist nicht wünschenswert oder zu aufwendig dafür eine separate Liste zu erstellen. In diesem Fall können wir eine Kurzschreibweise mit „geschwungenen Klammern“ verwenden:
Original in Englisch:
sentence
That's a {very|extremely} {tiny|small} [animal]!
I {think|believe} that you are a {liar|thief}.
I'd be so {rich|poor} if not for that person.
Alternativ auf Deutsch:
Satz
Das ist ein {sehr|extrem} {winziges|kleines} [Tier]!
Ich {denke|glaube}, dass du ein {Lügner|Dieb} bist.
Ich wäre so {reich|arm}, wenn diese Person nicht wäre.
Siehst du wie einfach das nun funktioniert? Anstatt nun also Listen zu erzeugen und einzubinden, werden die möglichen Zufallselemente innerhalb von geschwungenen Klammern { und } definiert und mit einem senkrchten Strich (auch Pipe genannt) | getrennt.
So wie wir die Wahrscheinlichkeit normaler Listenelemente ändern können, können wir auch die Wahrscheinlichkeit von abgekürzten „geschwungenen“ Listenelementen ändern. Ausgehend vom geschwungenen Block: {groß|groß|massiv} können wir „groß“ dreimal so wahrscheinlich machen, indem wir schreiben:
Original in Englisch:
{big|large^3|massive}
Alternativ auf Deutsch:
{groß|groß^3|massiv}
Du hast es vielleicht schon erraten, aber wir können auch so etwas machen:
Original in Englisch:
The country is known to contain many species of {[animal]|[plant]}
Alternativ auf Deutsch:
Das Land ist bekannt für seine zahlreichen {[Tier]|[Pflanzen]}-Arten
Hier haben wir nun quadratische Blöcke (also definierte Listen) in einen geschweiften Block gesetzt, sodass in der Hälfte der Outputs ein zufälliges Tier und in der anderen Hälfte eine zufällige Pflanze ausgewählt wird.
Wichtig: Beachte, dass Leerzeichen in geschweiften Blöcken berücksichtigt werden, sodass {hi|hallo} nicht dasselbe ist wie {hi | hallo}. In quadratischen Blöcken werden Leerzeichen ignoriert. Daher ist [Tier] dasselbe wie [ Tier ] – sie geben genau dasselbe aus, trotz der zusätzlichen Leerzeichen in den Klammern.
Geschweifte Blöcke
Geschweifte Blöcke werden in Perchance für alle möglichen und ausgefallenen Tricks verwendet. Nehmen wir zum Beispiel diesen Satz:
Wichtig: Das funktioniert nur in der englischen Benutzung von Perchance!
I'm a [animal]
Wenn das Ergebnis von [animal] zufällig mit einem Vokal beginnt, stimmt die Grammatik nicht mehr: „I’m a antelope“ – es sollte „I’m an antelope“ heißen. Wir könnten uns manuell behelfen, indem wir zwei separate Listen von Tieren erstellen (eine, die „a“ benötigen, und eine, die „an“ benötigen), aber das wäre mühsam und auf Dauer nicht tragbar. Solche Lösungen sollten nie dein primäres Ziel sein!
Stattdessen können wir einfach Folgendes tun: Ich bin {a} [animal]. Durch die Verwendung des geschweiften Blocks {a} wird der richtige Artikel (a/an) basierend auf dem, was für das nächste Wort angemessen ist, ausgewählt. Sprich Perchance erkennt ob das Tier mit „a“, „e“, „i“, „o“ oder „u“ beginnt. Wie gesagt, das funktioniert nur wenn du das Ganze im Englischen verwendest. Bei deutschen Wörtern ist es ja nicht so einfach.
{s} ist ein weitere geschweifter, definierter Block innerhalb von Perchance. Sehen wir uns das anhand eines Beispiels an. Nehmen wir den folgenden Satz:
I have {1|2|3} bananas
Das Problem wird bereits ersichtlich: „I have 2 bananas“ ergibt Sinn und ist korrekt, jedoch nicht „I have 1 bananas“ – auch wenn das so manche Touristen so behaupten. Wir benötigen also eine Möglichkeit, ein Wort zu pluralisieren. Also machen wir folgendes:
I have {1|2|3} banana{s}
Nun wird das „s“ immer dann hinten angestellt, wenn der Wert nicht „1“ ist. Das kann man in bedingter Weise sogar bei deutschen Wörtern einsetzen.
Zufällige Zahlen und Buchstaben
Mit Perchance kannst du nicht nur definierte Listen ausgeben, sondern auch zufällige Zahelnwerte oder Buchstaben. Anstatt {1|2|3} zu schreiben, können wir ebenso {1-3} schreiben. Das bedeutet, dass Zahlen von 1 bis 3 als Zufallswert herangezogen werden.
Du kannst dies natürlich beliebig definieren: {1-500} erzeugt Zahlenwerte zwischen 1 und 500. Das funktioniert auch mit Kleinbuchstaben {a-z} oder {e-t} und Großbuchstaben {A-Z} oder {C-U}.
Das hier generiert eine Zufallszahl zwischen 1 und 20: {1-20}
Das hier generiert eine Zufallszahl zwischen 58 und 99: {58-99}
Das hier generiert einen zufälligen Kleinbuchstaben zwischen a und z: {a-z}
Das hier generiert einen zufälligen Kleinbuchstaben zwischen m und s: {m-s}
Das hier generiert einen zufälligen Großbuchstaben zwischen A und Z: {A-Z}
Das hier generiert einen zufälligen Kleinbuchstaben zwischen K und Q: {K-Q}
Plural und Co (für Englisch)
Das nächste Thema funktioniert ebenfalls nur, wenn du Perchance in der englischen Variante verwendet – also englisch programmierst. Wir haben ja ganz am Anfang gelernt, dass du mit eckigen Klammern wie [animal] ein zufälliges Element aus einer zuvor definierten „animal“-Liste anzeigen kannst. Doch diese eckigen Klammern bzw. Blöcke können noch etwas mehr.
Wichtig: Das funktioniert nur in der englischen Benutzung von Perchance!
animal
pig
zebra
cow
sentence
There are so many [animal] here.
I've befriended this [animal].
[animal] are very agile.
In diesem Beispiel würde [sentence] etwa so ausgewertet:
There are so many cow here.
Was offensichtlich nicht korrekt ist. Es sollte heißen: „There are so many cows here.“ Was können wir also tun um eine Lösung zu finden? Unsere „animal“-Liste so ändern, dass sie als Pluralformen enthalten sind? Aber dann würde der zweite Satz nicht mehr funktionieren – dieser benötigt ja die Elemente als Singularwörter.
Wichtig: Das funktioniert nur in der englischen Benutzung von Perchance!
Bei Perchance kannst du (in der englischen Benutzung) Elemente ganz einfach in die Pluralform umwandeln: [animal.pluralForm]. Setze einfach einen Punkt und dann „pluralForm“ nach dem Namen der Liste, wo du diese Umwandlung benötigst. Unsere neue Liste mit „sentence“ lautet also:
sentence
There are so many [animal.pluralForm] here.
I've befriended this [animal].
[animal.pluralForm] are very agile.
Mit dieser Ergänzung ist unser Pluralisierungsproblem (im Englischen) behoben – aber wir sind noch nicht ganz fertig. Das letzte Element in unserer Liste hat den Block bzw. das Listenelement „animal“ am Anfang des Satzes und sollte daher idealerweise groß geschrieben werden. So machen wir das:
[animal.pluralForm.titleCase]
Die Ergänzung „titleCase“ wandelt das kleingeschriebene Wort in ein großgeschriebenes Wort um. Beachte, dass wir mehrere „Eigenschaften“ aneinanderreihen können, indem wir sie mit einem Punkt verbinden. Hier sind noch ein paar weitere Eigenschaften zum Ausprobieren:
[Tier.PluralForm.TitelGroßschreibung]. Beachte, dass wir mehrere „Eigenschaften“ aneinanderreihen können, indem wir sie mit einem Punkt verbinden. Hier sind noch ein paar weitere Eigenschaften zum Ausprobieren (nur in Englisch):
- singularForm (SingularForm)
- pastTense (Präteritum)
- presentTense (Gegenwart)
- futureTense (Zukunft)
- upperCase (Großschreibung)
- lowerCase (Kleinschreibung)
- sentenceCase (SatzGroßschreibung)
- titleCase (TitelGroßschreibung)
Es gibt noch mehr Eigenschaften, aber diese einfachen sollten für einfache Generatoren ausreichen. Wir werden im weiteren Verlauf dieses Tutorials mehr über leistungsfähigere und interessantere Eigenschaften erfahren. Beachte auch, dass die Eigenschaften singularForm, pluralForm, pastTense, presentTense und futureTense möglicherweise nicht für alle Wörter (insbesondere seltene und ausschließlich englische) richtig funktionieren.
In Fällen, in denen 100 % Genauigkeit erforderlich ist, ist es am besten, separate Listen für die Varianten Plural/Past-Tense usw. zu erstellen.