Textaufbau mit Perchance

Bei diesem Kapitel geht es nun um die grundlegende Funktion der Perchance-Engine. Also warum die Generatoren funktionieren, wie sie funktionieren und wie du das ebenso bewerkstelligen kannst. So manches mag am Anfang etwas verwirrend klingen, doch ich versuche alles nachvollziehbar zu erklären und zu verdeutlichen. Wichtig: Das funktioniert nur in der englischen Benutzung von Perchance! ...

Bei diesem Kapitel geht es nun um die grundlegende Funktion der Perchance-Engine. Also warum die Generatoren funktionieren, wie sie funktionieren und wie du das ebenso bewerkstelligen kannst. So manches mag am Anfang etwas verwirrend klingen, doch ich versuche alles nachvollziehbar zu erklären und zu verdeutlichen.

Wichtig: Das funktioniert nur in der englischen Benutzung von Perchance!

Lass uns mit einem einfachen Beispiel starten.

output
  [sentence]

flower
  rose
  lily
  tulip
  
sentence
  Oh you've got me a [flower]! Thank you, I love [flower.pluralForm]. 

Wir haben ja bereits die Perchance-Eigenschaften kennengerlernt, damit wir wissen was der Zusatz „.pluralForm“ bewirkt. Du kannst das bei Bedarf [hier] nochmals einsehen. Das offensichtlichste Problem bei dem Code oben ist nun, dass die Einzelform der Blume eine ganz andere Art von Blume ist, die bei der Mehrzahl angezeigt wird. Der Satz ergibt also nicht so viel Sinn, oder?

Lass uns das also korrigieren:

output
  [sentence]

flower
  rose
  lily
  tulip

sentence
  Oh you've got me a [f = flower.selectOne]! Thank you, I love [f.pluralForm].

Was wir hier nun tun, ist, ein Element aus der Liste [flower] auszuwählen (z. B. „Tulpe“ oder „Rose“ oder „Lilie“) und es in die Variable „f“ zu setzen. Eine Variable ist wie eine temporäre Schublade. Wenn man ein Objekt, z.B. „Tulpe“ hinlegt, dann bleibt dieses Objekt in der Schublade, bis es entfernt oder gegen ein anderes Objekt, z.B. „Rose“ ausgetauscht wird. Du kannst die Variable benennen, wie du willst. In diesem Fall eben „f“.

Das wird übrigens durch das Gleichheitszeichen in eckigen Klammern erreicht. Es ermöglicht dir, „Dinge“ unter einer eindeutigen Kennung zu „speichern“.

[f = flower.selectOne]

Was wir hier nun tun, ist, ein Element aus der Liste [flower] auszuwählen (z. B. „Tulpe“ oder „Rose“ oder „Lilie“) und es in die Variable „f“ zu setzen. Eine Variable ist wie eine temporäre Schublade. Wenn man ein Objekt, z.B. „Tulpe“ hinlegt, dann bleibt dieses Objekt in der Schublade, bis es entfernt oder gegen ein anderes Objekt, z.B. „Rose“ ausgetauscht wird. Du kannst die Variable benennen, wie du willst. In diesem Fall eben „f“.

Das wird übrigens durch das Gleichheitszeichen in eckigen Klammern erreicht. Es ermöglicht dir, „Dinge“ unter einer eindeutigen Kennung zu „speichern“.

Wichtig: Die Schublade, also die Variable kann jeden Namen haben, solange dieser nur aus Buchstaben und Zahlen besteht. Sonderzeichen oder Leerzeichen sind nicht erlaubt.

Wcihtig: Beachte, dass das Beispiel oben einer Liste zugrunde liegt wie [flower] mit den Inhalten „Rose“, „Tulpe“ oder „Lilie“. Diese Inhalrte kannst du nun mit zufälligen Farbwerten ergänzen, wie [rot|pink}. Durch die Angabe der Farbe, wird der Satz greifbarer, anstatt einfach nur „Rose“.

Ursprüngliche flower-Liste

flower
	rose
	lily
	tulip

Verbesserte flower-Liste

flower
	{red|pink} rose
	lily
	{yellow|blue} tulip

Wenn du also so eine Liste aufgebaut hast, dann lautet der Code

f = flower.selectOne.evaluateItem

oder kürzer

f = flower.evaluateItem

evaluateItem führt im Hintergrund immer selectOne aus, deshalb kann man es auch weglassen.

evaluateItem wird verwendet, weil es dafür sorgt, dass eventuell definierte Teile vor einem Objekt, wie {rot|rosa}, vor dem Output gewählt und aufgelöst werden. Das bedeutet, es wird z. B. konkret rosa Rose oder rot Rose in der Variablen f gespeichert, anstatt der ursprünglichen, nicht aufgelösten Struktur {rot|rosa} Rose. Klingt kompliziert, oder?

Brechen wir es nochmal runter

Die Liste [flower] wird definiert.

output
  [sentence]

flower
  rose
  lily
  tulip

sentence
  Oh you've got me a [f = flower]! Thank you, I love [f.pluralForm].

Allerdings führt das zu Problemen, weil f = flower nicht dazu führt, das ein Objekt definiert wird. Wir müssen also schreiben:

output
  [sentence]

flower
  rose
  lily
  tulip

sentence
  Oh you've got me a [f = flower.selectOne]! Thank you, I love [f.pluralForm].

Dadurch wird in der Variable f vor dem output ein zufälliger Wert aus der Liste [flowers] bestimmt und in weiterer Folge durch [f.pluralForm] korrekt weiderholt und in der Mehrzahl ausgegeben.

Du fragst dich vielleicht, warum wir nicht einfach [f=flower] schreiben können. Das liegt daran, dass f dann ein Verweis auf die eigentliche Liste namens „flower“ wäre, anstatt auf ein zufällig ausgewähltes Element von [flower]. Denke einfach daran: Wir möchten ein Element der Liste speichern, nicht die Liste selbst. Wenn du tatsächlich [f=flower] schreiben würdest, wäre [f] nur ein Alias ​​(ein anderer Name für) [flower], und daher würde [f] jedes Mal eine neue zufällige Blume zurückgeben (das kann praktisch sein, wenn du einen Listennamen abkürzen möchtest, den du häufig verwenden).

Möchtest du nun auch noch eine variable Liste in den Listenwerten selbst verankern, z.B. die Farbe der Blumen, dann ändert sich der Code auf:

output
  [sentence]

flower
  {red|pink} rose
  lily
  {yellow|blue} tulip

sentence
  Oh you've got me a [f = flower.selectOne]! Thank you, I love [f.pluralForm].

Allerdings wird nun nur die Art der Blume korrekt an die zweite Ausgabe wiedergegeben. Die Farbe kann nach wie vor unterschiedlich sein, weil [f = flower.selectOne] nicht korrekte Zuordnung der Farbe vor der Ausgabe berücksichtigt. Der Code ist also zu ändern auf:

output
  [sentence]

flower
  {red|pink} rose
  lily
  {yellow|blue} tulip

sentence
  Oh you've got me a [f = flower.selectOne.evaluateItem]! Thank you, I love [f.pluralForm].

Wobei [f = flower.selectOne.evaluateItem] auch durch [f = flower.evaluateItem] abgekürzt werden kann, weil .selectOne bei .evaluateItem automatisch im Hintergrund ausgeführt wird. Wir müssen .evaluateItem verwenden, weil wir etwas wie eine „rosa Rose“ in der Variable f speichern möchten und kein „nicht bewertetes“ Element wie eine {rote|rosa} Rose. Daher stellen wir mit .evaluateItem sicher, dass wir alle zufälligen Teile wie {rot|rosa} „bewerten“, bevor wir das ausgewählte Element in f speichern.

Hier ist ein weiteres Beispiel:

output
  [sentence]

name
  Addison
  Alex
  Alexis
  
lastName
  Smith
  Johnson
  Williams

sentence
  Her name was [n = name.selectOne]. [n.titleCase] [lastName.titleCase], if I recall correctly.

Es werden zuerst zwei Listen erstellt, eine mit [name] und eine mit [lastname]. Diese werden dann in sentence aufgerufen. Zuest wird die Variable n definiert und ein Wert aus der Liste selektiert und zugewiesen

[n = name.selectOne]

Danach können wir die Variable n nochmals verwenden und mit einem beliebigen Nachnamen kombinieren.

[n.titleCase] [lastName.titleCase]

Du kannst diese definierte Variable dann beliebig oft verwenden:

sentence
  Her name was [n = name.selectOne]. [n.titleCase] [lastName.titleCase], if I recall correctly. Yes, ist [n.titleCase].

Du kannst eine Variable auch jederzeit ändern und einen neuen Wert zuweisen:

output
  [sentence]

name
  Addison
  Alex
  Alexis
  Tom
  Susanne
  
lastName
  Smith
  Johnson
  Williams
  

sentence
  I think her name was [n = name.selectOne.titleCase]? [n] [l = lastName.titleCase]? Wait, no, it was [n = name.selectOne]. Yeah, that's right, [n] [l].

Achtung: Rechteckige Klammern sollten nicht nochmals in rechteckigen Klammern verwendet werden:

  • Das ist richtig: [n = name.selectOne]
  • Das ist falsch: [n = [name].selectOne]

Beides ist eigentlich „funktionierender“ Perchance-Code, aber letzterer tut nicht das, was du beabsichtigst, da eckige Klammern eine andere Bedeutung haben, wenn sie innerhalb anderer eckiger Klammern verwendet werden. Dazu kommen wir noch. Denke also vorerst einfach daran: Wenn du dich innerhalb von eckigen Klammern befindesz, beziehst du dich direkt auf Listennamen – schließe sie nicht in eckige Klammern ein.

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Ronny Kühn
Selbstständiger Unternehmer, Autor, Content Creator
Ich bin ein erfahrener Spezialist für die Erstellung und Optimierung von Anleitungen und Handouts. Bei einem führenden österreichischen Telekommunikationsanbieter habe ich mehrere Jahre lang Anleitungen für Kunden und Mitarbeiter entwickelt, um Anrufe zu reduzieren und die interne Effizienz zu steigern. Zusätzlich war ich als Schulungskoordinator und Trainer tätig. Heute nutze ich meine Expertise als Selbstständiger, um meinen Kunden hochwertige und maßgeschneiderte Dokumente anzubieten. Meine Leidenschaft liegt darin, Informationen klar und professionell aufzubereiten und zu präsentieren.

Noch mehr Dokumentenmeister Tipps

8 Tipps für Perchance AI-Chats

Über den KI-Charakter Chat mit Perchance habe ich ja bereits in meinem Artikel Online-Rollenspiele mit Perchance KI berichtet. Damit du dieses Erlebnis entsprechend steuern ...

Dinge wiederholen mit Perchance

Im letzten Artikel habe ich den selectOne Parameter von Perchance erklärt. Er mag am Anfang etwas verwirrend erscheinen, doch mit einigen Beispielen und Tests ...

Textaufbau mit Perchance

Bei diesem Kapitel geht es nun um die grundlegende Funktion der Perchance-Engine. Also warum die Generatoren funktionieren, wie sie funktionieren und wie du das ...

Buche eine kostenlose, persönliche Beratung

Lass mich Dir zeigen, wie maßgeschneiderte Handouts und Dokumente Dein Geschäft voranbringen können. Buche jetzt eine kostenlose, persönliche Beratung mit mir und erlebe, wie Deine Vision Wirklichkeit wird.