This challenge is inspired by a series of young children's books by Fiona Watt and Rachel Wells, which I've recently been enjoying with my daughter.
In each book a mouse (illustrated, but not part of the text) complains that a succession of 5 things of the same type are not its thing. It then backs this up by declaring that some component of the thing doesn't have the property it expects.
On the sixth time of asking, the mouse finds its thing and is pleased because it has the expected property.
Here is the text of a typical example:
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.
Now, most programming folk would realise that this is a very algorithmic method of producing some text. Because it's such a clear process, we should be able to reproduce this by writing some code.
Let's start with three collections of words:
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"]
- First, we decide which kind of thing we will be describing.
- Then 5 times, we will generate the line "That's not my [thing], its [part] is too [property].
- Finally, we generate the line "That's my [thing]! Its [part] is so [property]!
The challenge
- Generate the text of a "That's not my..." story.
- It must not consistently reproduce the same text.
- It's code golf, so attempt to do so in the smallest number of bytes.
- Use any language you please.
- White space doesn't matter, but there must be a newline character between lines.
- The lists of source words are not part of your answer (in TIO they can be added to the header).
- You can rename the lists of source words.
- Output can be output to a terminal or text generated into an object.
- Please include a link to an online interpreter.
- Ignore plurals, "its horns is" is fine.
- It doesn't need to make sense. If your princess's funnel is too fluffy, just say so.
Sample output:
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.
Happy golfing!