Zufallsgedicht
Würfelt Gedichte nach festen Formen — ein Elfchen mit elf Wörtern oder einen Vierzeiler mit Reim.
Ein Gedicht aus dem Zufallsgenerator — das klingt nach Unsinn und ist trotzdem oft überraschend hübsch. Der Grund liegt in uns: Wo eine feste Form vorgegeben ist, sucht der Kopf beim Lesen automatisch nach Sinn und findet ihn meist auch. Genau davon lebten die Dichter des Dadaismus, die vor gut hundert Jahren Wörter aus dem Hut zogen.
Das Script beherrscht zwei Formen. Das Elfchen ist eine Schulform mit strengem Bauplan: fünf Zeilen mit 1, 2, 3, 4 und wieder 1 Wort — zusammen elf, daher der Name. Die vierte Zeile ist der Satz, die letzte das Echo darauf. Der Vierzeiler reimt sich am Zeilenende, weil die Wörter aus nach Reimen sortierten Töpfen gezogen werden.
Wer will, kann ein Thema vorgeben — dann zieht das Script aus einem entsprechenden Wortvorrat. Und mit „Zeile neu würfeln" tauscht ihr einzelne Zeilen aus, bis das Gedicht gefällt; genau so entstehen die besten Ergebnisse.
Verwandtes im Archiv: der Blindtext-Generator erzeugt Prosa statt Verse, der Fantasienamen-Generator einzelne Wörter, und Zitat des Tages liefert Sätze von echten Menschen.
So funktioniert das Script
Der Unterschied zwischen Wortsalat und Gedicht ist die Form. Deshalb steckt der interessante Teil dieses Scripts nicht im Zufall, sondern in den Bauplänen.
return [
erstes.wort,
zufall(vorrat.adjektiv) + endungen[zweites.genus] + " " + zweites.wort,
artikel[drittes.genus] + " " + drittes.wort + " " + zufall(vorrat.verb),
zufall(vorrat.ort) + " " + zufall(vorrat.verb),
zufall(vorrat.schluss)
];
Das Elfchen hat einen festen Bauplan: eins, zwei, drei, vier und wieder ein Wort. Jede Zeile wird deshalb nicht frei gewürfelt, sondern aus einer festgelegten Abfolge von Wortarten zusammengesetzt. Damit die Wortzahl stimmt, sind die Ortsangaben der vierten Zeile durchweg dreiwortig gespeichert — „hinter dem Zaun", „über den Wolken" — und mit dem Verb dahinter kommt die Zeile auf genau vier.
const endungen = { m: "er", f: "e", n: "es" };
const artikel = { m: "der", f: "die", n: "das" };
Und hier steckt die Falle, in die jeder deutsche Wortgenerator tappt: Ein zufällig gewähltes Adjektiv passt nicht zu jedem Nomen. Es heißt „stiller Wald", aber „stille Wiese" und „stilles Licht". Genauso beim Artikel: der Wald, die Wiese, das Licht.
Deshalb trägt jedes Nomen sein Geschlecht mit sich, die Adjektive stehen als Stamm ohne Endung da, und zwei kleine Tabellen liefern Endung und Artikel. Ohne diesen Umweg entstünde „der Moos wandert" und „weiter Küste" — grammatisch falsch und in einem Gedicht sofort störend. Deutsch ist damit deutlich unbequemer als Englisch, wo ein Adjektiv unverändert vor jedem Hauptwort steht.
let a2 = zufall(paar.a);
while (a2 === a1 && paar.a.length > 1) a2 = zufall(paar.a);
Für den Reim werden zwei Wörter aus demselben Reimtopf gezogen — sie müssen aber verschieden sein, denn ein Wort auf sich selbst zu reimen ist ein Kunstfehler. Die Schleife würfelt neu, bis sich die beiden unterscheiden. Die Zusatzbedingung paar.a.length > 1 ist die Notbremse: Bei einem Topf mit nur einem Wort liefe die Schleife sonst endlos.
{ a: ["Nacht", "sacht", "wacht", "Macht"],
b: ["Wind", "Kind", "sind", "blind"] }
Jedes Reimpaar enthält zwei Wortgruppen, die sich jeweils untereinander reimen. Weil das Gedicht daraus einen Kreuzreim baut — erste Zeile auf dritte, zweite auf vierte —, braucht es zwei getrennte Gruppen je Gedicht. Für einen Paarreim (erste auf zweite, dritte auf vierte) würde man dieselben Töpfe nur anders verteilen.
const zahlen = zeilen.map(function (zeile) {
return zeile.split(/\s+/).length;
});
Die Wortzahl je Zeile wird nachgezählt und mit ausgegeben. Das ist mehr als Zierde: Beim Elfchen ist die Form der ganze Witz, und die Zahlenreihe 1 – 2 – 3 – 4 – 1 macht sie sichtbar. Nebenbei ist es eine Selbstkontrolle des Scripts — stimmt die Reihe nicht, ist ein Bauplan falsch.
const vorrat = woerter[thema];
Die drei Themen liegen als benannte Wortsammlungen vor, jede mit denselben Fächern: Nomen, Adjektive, Verben, Orte, Schlusswörter. Weil die Struktur überall gleich ist, funktionieren die Baupläne mit jedem Thema. Ein viertes Thema hinzuzufügen heißt, fünf Listen zu füllen — kein Code.
Zum Anpassen: Für ein Haiku mit seinen 5-7-5 Silben bräuchtet ihr Wörter mit bekannter Silbenzahl; am einfachsten schreibt man sie gleich mit in die Liste, denn Silben automatisch zu zählen ist im Deutschen erstaunlich schwer. Für Gedichte in der ersten Person ergänzt ihr einen Topf mit Verbformen auf „-e" — „ich warte", „ich schweige" — und einen passenden Bauplan.
Script für die eigene Homepage
Kopiert euch den kompletten Code und fügt ihn an der Stelle eurer Seite ein, an der das Script erscheinen soll. Er läuft ohne weitere Dateien und ohne fremde Server.