Diese Herausforderung ist inspiriert von einer Reihe von Kinderbüchern von Fiona Watt und Rachel Wells, die ich kürzlich mit meiner Tochter genossen habe.
In jedem Buch beklagt sich eine Maus (illustriert, aber nicht Teil des Textes), dass eine Abfolge von 5 Dingen desselben Typs nicht ihre Sache ist. Es sichert dies dann, indem es erklärt, dass eine Komponente der Sache nicht die Eigenschaft hat, die sie erwartet.
Beim sechsten Mal findet die Maus ihr Ding und freut sich, weil sie die erwartete Eigenschaft hat.
Hier ist der Text eines typischen Beispiels:
That's not my bunny, its tail is too fluffy.
That's not my bunny, its paws are too rough.
That's not my bunny, its tail is too woolly.
That's not my bunny, its eyes are too shiny.
That's not my bunny, its nose is too wrinkled.
That's my bunny! Its ears are so soft.
Jetzt würden die meisten Programmierer erkennen, dass dies eine sehr algorithmische Methode zur Erzeugung von Text ist. Da es sich um einen so klaren Prozess handelt, sollten wir dies reproduzieren können, indem wir Code schreiben.
Beginnen wir mit drei Wortsammlungen:
things = ["dinosaur", "lamb", "princess", "reindeer", "train"]
parts = ["back", "bells", "body", "bows", "crown", "dress", "ears",
"engine", "fan", "flippers", "funnel", "hooves", "horns", "neck",
"nose", "roof", "sash", "side", "spines", "spots", "tail", "teeth",
"tiara", "wheels", "windows"]
properties = ["bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly"]
- Zuerst entscheiden wir, welche Art von Dingen wir beschreiben werden.
- Dann erzeugen wir 5 Mal die Zeile "Das ist nicht mein Ding, sein Teil ist auch Eigentum.
- Schließlich erzeugen wir die Zeile "Das ist mein [Ding]! Sein [Teil] ist so [Eigentum]!
Die Herausforderung
- Generieren Sie den Text einer "Das ist nicht meine ..." Geschichte.
- Es darf nicht immer derselbe Text wiedergegeben werden.
- Es ist Codegolf, also versuchen Sie es mit der kleinsten Anzahl von Bytes.
- Verwenden Sie eine beliebige Sprache.
- Leerzeichen spielen keine Rolle, aber zwischen den Zeilen muss ein Zeilenumbruch stehen.
- Die Listen der Quellwörter sind nicht Teil Ihrer Antwort (in TIO können sie der Kopfzeile hinzugefügt werden).
- Sie können die Listen der Quellwörter umbenennen.
- Die Ausgabe kann an ein Terminal erfolgen oder in ein Objekt generierter Text.
- Bitte fügen Sie einen Link zu einem Online-Dolmetscher bei.
- Plurale ignorieren, "seine Hörner sind" ist in Ordnung.
- Es muss keinen Sinn ergeben. Wenn Trichter Ihrer Prinzessin zu flauschig ist, sagen Sie einfach so.
Beispielausgabe:
That's not my train, its engine is too rusty.
That's not my train, its hooves is too thick.
That's not my train, its sash is too fuzzy.
That's not my train, its tail is too velvety.
That's not my train, its horns is too glittery.
That's my train! Its hooves is so hairy.
Viel Spaß beim Golfen!