That's not my X, its Y is too ZTips for golfing in 05AB1EA Spintax TaskHuffman golfingUnnecessary Text AbbreviationsA Mnemonic for Remembering 23940Is it simple or is it hard?Text Processing #1: HyphenationMonday Mini-Golf #5: <s>Don't</s> DO try this at homeGenerate WordenticonsPlease do my Martian homeworkError (or warning) quine that's also a regular quineComposition of permutations – the group product
AT system without -5v
Children's short story about material that accelerates away from gravity
Inverse-quotes-quine
Did Chinese school textbook maps (c. 1951) "depict China as stretching even into the central Asian republics"?
The use of "I" and "we" used in the same sentence and other questions
How many satellites can stay in a Lagrange point?
Why does the numerical solution of an ODE move away from an unstable equilibrium?
Bash echo $-1 prints hb1. Why?
Averting Real Women Don’t Wear Dresses
How to determine what is the correct level of detail when modelling?
Stepcounter after paragraph
Magnitude of vector quantities
Going to get married soon, should I do it on Dec 31 or Jan 1?
Why aren't (poly-)cotton tents more popular?
Challenging plot in "3D"
Is adding a new player (or players) a DM decision, or a group decision?
Is this the golf ball that Alan Shephard hit on the Moon?
How would a order of Monks that renounce their names communicate effectively?
EM algorithm and Mean residual life
Could Sauron have read Tom Bombadil's mind if Tom had held the Palantir?
Why is a blank required between "[[" and "-e xxx" in ksh?
“Faire” being used to mean “avoir l’air”?
Are there any vegetarian astronauts?
What does 2>&1 | tee mean?
That's not my X, its Y is too Z
Tips for golfing in 05AB1EA Spintax ProblemHuffman golfingUnnecessary Text AbbreviationsA Mnemonic for Remembering 23940Is it simple or is it hard?Text Processing #1: HyphenationMonday Mini-Golf #5: <s>Don't</s> DO try this at homeGenerate WordenticonsPlease do my Martian homeworkError (or warning) quine that's also a regular quineComposition of permutations – the group product
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
$begingroup$
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!
code-golf
$endgroup$
|
show 12 more comments
$begingroup$
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!
code-golf
$endgroup$
2
$begingroup$
@Shaggy The first example is the actual text of one of the books. It’s not a valid answer for this challenge. I’ve said to ignore plurals to simplify the challenge a little. That example is basically background information.
$endgroup$
– AJFaraday
Jun 9 at 15:18
1
$begingroup$
Related
$endgroup$
– FryAmTheEggman
Jun 9 at 15:20
10
$begingroup$
You state "It doesn't need to make sense.", does that extend to near-contractions? (i.e. is "That's not my bunny, its eyes are too shiny. ... That's my bunny! Its eyes are so shiny." acceptable as a possible output?) - I'd guess so, just thought I'd check.
$endgroup$
– Jonathan Allan
Jun 9 at 16:13
13
$begingroup$
Aren't "It must not consistently reproduce the same text" and kolmogorov-complexity kind of incompatible?
$endgroup$
– Joseph Sible
Jun 9 at 23:48
2
$begingroup$
@ChrisH That's my taxonomical mistake. Although both are classed as Glires, so that's something I've learned today.
$endgroup$
– AJFaraday
Jun 11 at 8:16
|
show 12 more comments
$begingroup$
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!
code-golf
$endgroup$
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!
code-golf
code-golf
edited Jun 11 at 8:17
AJFaraday
asked Jun 9 at 13:42
AJFaradayAJFaraday
3,9004 gold badges35 silver badges64 bronze badges
3,9004 gold badges35 silver badges64 bronze badges
2
$begingroup$
@Shaggy The first example is the actual text of one of the books. It’s not a valid answer for this challenge. I’ve said to ignore plurals to simplify the challenge a little. That example is basically background information.
$endgroup$
– AJFaraday
Jun 9 at 15:18
1
$begingroup$
Related
$endgroup$
– FryAmTheEggman
Jun 9 at 15:20
10
$begingroup$
You state "It doesn't need to make sense.", does that extend to near-contractions? (i.e. is "That's not my bunny, its eyes are too shiny. ... That's my bunny! Its eyes are so shiny." acceptable as a possible output?) - I'd guess so, just thought I'd check.
$endgroup$
– Jonathan Allan
Jun 9 at 16:13
13
$begingroup$
Aren't "It must not consistently reproduce the same text" and kolmogorov-complexity kind of incompatible?
$endgroup$
– Joseph Sible
Jun 9 at 23:48
2
$begingroup$
@ChrisH That's my taxonomical mistake. Although both are classed as Glires, so that's something I've learned today.
$endgroup$
– AJFaraday
Jun 11 at 8:16
|
show 12 more comments
2
$begingroup$
@Shaggy The first example is the actual text of one of the books. It’s not a valid answer for this challenge. I’ve said to ignore plurals to simplify the challenge a little. That example is basically background information.
$endgroup$
– AJFaraday
Jun 9 at 15:18
1
$begingroup$
Related
$endgroup$
– FryAmTheEggman
Jun 9 at 15:20
10
$begingroup$
You state "It doesn't need to make sense.", does that extend to near-contractions? (i.e. is "That's not my bunny, its eyes are too shiny. ... That's my bunny! Its eyes are so shiny." acceptable as a possible output?) - I'd guess so, just thought I'd check.
$endgroup$
– Jonathan Allan
Jun 9 at 16:13
13
$begingroup$
Aren't "It must not consistently reproduce the same text" and kolmogorov-complexity kind of incompatible?
$endgroup$
– Joseph Sible
Jun 9 at 23:48
2
$begingroup$
@ChrisH That's my taxonomical mistake. Although both are classed as Glires, so that's something I've learned today.
$endgroup$
– AJFaraday
Jun 11 at 8:16
2
2
$begingroup$
@Shaggy The first example is the actual text of one of the books. It’s not a valid answer for this challenge. I’ve said to ignore plurals to simplify the challenge a little. That example is basically background information.
$endgroup$
– AJFaraday
Jun 9 at 15:18
$begingroup$
@Shaggy The first example is the actual text of one of the books. It’s not a valid answer for this challenge. I’ve said to ignore plurals to simplify the challenge a little. That example is basically background information.
$endgroup$
– AJFaraday
Jun 9 at 15:18
1
1
$begingroup$
Related
$endgroup$
– FryAmTheEggman
Jun 9 at 15:20
$begingroup$
Related
$endgroup$
– FryAmTheEggman
Jun 9 at 15:20
10
10
$begingroup$
You state "It doesn't need to make sense.", does that extend to near-contractions? (i.e. is "That's not my bunny, its eyes are too shiny. ... That's my bunny! Its eyes are so shiny." acceptable as a possible output?) - I'd guess so, just thought I'd check.
$endgroup$
– Jonathan Allan
Jun 9 at 16:13
$begingroup$
You state "It doesn't need to make sense.", does that extend to near-contractions? (i.e. is "That's not my bunny, its eyes are too shiny. ... That's my bunny! Its eyes are so shiny." acceptable as a possible output?) - I'd guess so, just thought I'd check.
$endgroup$
– Jonathan Allan
Jun 9 at 16:13
13
13
$begingroup$
Aren't "It must not consistently reproduce the same text" and kolmogorov-complexity kind of incompatible?
$endgroup$
– Joseph Sible
Jun 9 at 23:48
$begingroup$
Aren't "It must not consistently reproduce the same text" and kolmogorov-complexity kind of incompatible?
$endgroup$
– Joseph Sible
Jun 9 at 23:48
2
2
$begingroup$
@ChrisH That's my taxonomical mistake. Although both are classed as Glires, so that's something I've learned today.
$endgroup$
– AJFaraday
Jun 11 at 8:16
$begingroup$
@ChrisH That's my taxonomical mistake. Although both are classed as Glires, so that's something I've learned today.
$endgroup$
– AJFaraday
Jun 11 at 8:16
|
show 12 more comments
17 Answers
17
active
oldest
votes
$begingroup$
05AB1E, 63 bytes
ΩU6F€Ω`XN5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
Try it online.
68 bytes version which doesn't output duplicated parts nor properties:
ΩUε.r6£}øεXª`N5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
Try it online.
Both programs assumes the list of things is the first input, and a list containing the list of parts and list of properties is the second input.
Explanation:
Ω # Pop and push a random element of the things-list
U # Pop and store it in variable `X`
6F # Loop 6 times:
€Ω # Get a random element from both the parts and properties list
` # Push them to the stack
X # And also push variable `X`
# (the order on the stack is now: property, part, thing)
N5Qi # If it's the last iteration:
“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“
'# Push dictionary string "that's my ÿ! its ÿ is so ÿ."
ë # Else:
“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“
'# Push dictionary string "that's not my ÿ, its ÿ is too ÿ."
# (where the `ÿ` are automatically replaced with the words on the stack)
}.ª # After the if-else: sentence-capitalize the strings
# (so the "That's " as well as the "! Its")
, # And output it with trailing newline
ΩU # Pop and store a random thing in variable `X`
ε # Map the list of lists of parts/properties to:
.r # Shuffle the list
6£ # And leave the first six elements
}ø # After the map: zip/transpose to create pairs of part & property
ε # Foreach over the pairs:
`XN5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
# And the rest of the code is the same as above
See this 05AB1E tip of mine (section How to use the dictionary?) to understand why “€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ is "that's my ÿ! its ÿ is so ÿ." and “€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“ is "that's not my ÿ, its ÿ is too ÿ.".
$endgroup$
add a comment |
$begingroup$
Python 3, 149 bytes
lambda a,*l:shuffle(a)or["That's "+s%(a[0],*map(choice,l))for s in["not my %s, its %s is too %s."]*5+["my %s! Its %s is so %s."]]
from random import*
Try it online!
-9 bytes thanks to movatica
$endgroup$
$begingroup$
Nice work! Shorter tuple syntax: 149 bytes
$endgroup$
– movatica
Jun 10 at 9:22
1
$begingroup$
@movatica Ooh, nice. Thanks!
$endgroup$
– HyperNeutrino
Jun 10 at 13:19
$begingroup$
"That's not my reindeer, its ears is too bumpy." - needs something to switch between is/are.
$endgroup$
– John Hunt
Jun 11 at 15:08
1
$begingroup$
@JohnHunt the rules say to ignore plurals.
$endgroup$
– HyperNeutrino
Jun 11 at 15:51
$begingroup$
My mistake. This is v.impressive
$endgroup$
– John Hunt
Jun 12 at 10:06
add a comment |
$begingroup$
Charcoal, 72 bytes
≔‽θθF⁵«That's not my θ, its ‽η is too ‽ζ.⸿»That's my θ! Its ‽η is so ‽ζ.
Try it online! Link is to verbose version of code. Expects the arrays of things, parts and properties to be in the variables θ, η and ζ, which is most easily arranged by providing them in the input rather than the header. Explanation:
≔‽θθ
Pick a random thing.
F⁵«That's not my θ, its ‽η is too ‽ζ.⸿»
Print five negative sentences.
That's my θ! Its ‽η is so ‽ζ.
Print the positive sentence.
$endgroup$
add a comment |
$begingroup$
Japt v2.0a0 -R, 73 bytes
ö
6Æ`Tt's `not `pT=Y<5my +`!,`gT 73dT*Hts Vö `tÑ?`ë2!T Wö.
Takes the three lists as U, V, and W. Those are the default input variables anyways, so just put the three lists in the input section.
Try it
ö Saves the random object in variable U
6Æ Range [0..6), and map each to the following string
`That's The string "That's " plus
`not `pT=Y<5 "not " if the index is less than 5 (and store that in variable T), else ""
my Literal "my " plus
+`!,`gT U plus ',' if T, else '!'
73dT*Hts "its " if T, else "Its "
Vö Random item from V
is
`tsooo`ë2!T "too" if T, else "so"
Wö. Random item from V, plus a period
$endgroup$
$begingroup$
Very nice trick with "too/so" :)
$endgroup$
– Shaggy
Jun 13 at 21:41
add a comment |
$begingroup$
PowerShell, 147 bytes
This main program will not repeat any part or property in a run, and has reasonable randomization.
$t=$l|Random
$a=$a|Random -c 6
$r=$r|Random -c 6
0..4|%"That's not my $t, its $($a[$_]) is too "+$r[$_]
"That's my $t! Its $($a[5]) is so "+$r[5]
Try it online!
Writing get-random so many times costs so many characters! However, unless you are willing to let parts and properties be repeated, I can't see a way to shrink this in powershell any further. Unless you move the first 3 line pipes to the end of the 3 assignment lines in the header. To have something like
# Header
$l = ("dinosaur", "lamb", "princess", "reindeer", "train")|Get-Random
$a = ("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")|sortGet-Random
$r = ("bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly")|sortGet-Random
# Main
(1..5)|%echo("That's not my $t, its "+$a[$_]+" is too "+$r[$_])
"That's my $t! Its "+$a[6]+" is so "+$r[6]
But that seems like it's cheating, and still doesn't beat Neil's answer.
Edit: Thanks for the tips Matt, and thanks AdmBorkBork for fleshing them out, removing the 3 sets of get- text reduced it to 159 bytes, then some more golf from Adm got it down to 147. The code I was thinking of which allowed duplicates and contradictory statements was 144 characters after applying the same golf tips.
function n(random 18)+1
$t=$l[(n)%5]
0..4|%"That's not my $t, its $($a[(n)]) is too "+$r[(n)]
"That's my $t! Its $($a[$(n)]) is so "+$r[(n)]
Try it online!
However, it not only has a tendency to say the same thing multiple times, but it pretty much requires that your inputs be the same number of elements. I believe the pseudo random number generator being used is heavily dependent on the clock, and quick repeated calls to it can often result in the same result. Then it has the condition that it only uses the whole list if all lists are the same length.With only saving 3~5 characters and having so many caveats, I prefer the code at the start of this post.
$endgroup$
1
$begingroup$
Welcome to PPCG! Parts and properties can be repeated so that should save you some bytes.
$endgroup$
– Shaggy
Jun 10 at 9:51
2
$begingroup$
You can drop theGet-fromGet-Random. Its the default verb tested when evaluating commands.
$endgroup$
– Matt
Jun 10 at 12:20
2
$begingroup$
Welcome! Some easy golfs gets you down to 147 bytes
$endgroup$
– AdmBorkBork
Jun 10 at 13:32
add a comment |
$begingroup$
Jelly, 72 bytes
XWWẋ6;X€}⁶pʋ€s5“ʠ˵ʋb⁵J¥¢wBD®-Ƥd(CḤ!²kT“Ø!1ẆÑ⁹ṁṾƤṛḄėÄṂMƓṾṖ¿O*½»Ỵ€¤żⱮ"ẎY
Try it online!
$endgroup$
add a comment |
$begingroup$
JavaScript, 129
(a,b,c)=>(z='',a.forEach((f,i)=>z+=`That's $q=i!=5?"not ":""my $f$q?", i":"! I"ts $b[i] is $q?"to":"s"o $c[i].n`),z)
input is three arrays, returns string
$endgroup$
add a comment |
$begingroup$
Ruby, 128 bytes
->a,*lt=a.sample;6.times
Try it online!
$endgroup$
add a comment |
$begingroup$
C#, 204 203 bytes
()=>int a(int x)=>new Random().Next(x);var j=t[a(5)];string s()=>$"That's not my j, its p[a(25)] is too o[a(19)].n";return s()+s()+s()+s()+s()+$"That's my j! Its p[a(25)] is so o[a(19)].";;
It is my first answer on this site, so I hope it works well. It also needs those three things, but according to question those do not count:
var t = new[] "dinosaur", "lamb", "princess", "reindeer", "train" ;
var p = new[] "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" ;
var o = new[] "bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly";
Try it online!
One less byte thanks to Sok.
$endgroup$
1
$begingroup$
Welcome to PPCG! I've taken the liberty of editing in a link to TIO into your answer, so that others can easily try your code for themselves - I would have given you the link to it in this comment, but the URI was too long unfortunately! I hope you enjoy your stay :o)
$endgroup$
– Sok
Jun 11 at 11:58
1
$begingroup$
One small golf for you as well - therisn't required, which will save you 2 bytes.
$endgroup$
– Sok
Jun 11 at 12:01
add a comment |
$begingroup$
APL (Dyalog Unicode), 117 bytesSBCS
↑('That''s not my ',(t←T⊃⍨?5),', its ')∘,¨P[5?25],¨' is too '∘,¨V[5?19]
'That''s my ',t,'! Its',P[?25],'is so',V[?19]
Try it online!
?N generates a random index among the first N indices.
M?N generates M random indices (without replacement) among the first N indices.
, is concatenation
t←T⊃⍨… picks a random thing and calls it t for reuse in the last line.
∘,¨ concatenates the string on the left to each string on the right.
,¨ concatenates each string on the left to each string on the right.
↑ changes the list of strings into a character matrix so it prints right.
$endgroup$
add a comment |
$begingroup$
Pyth, 88 78 76 bytes
JONj_ms.ic"That's
my
ts
is
o
."b[?d" not"kJ?d", i""! I"OG?ds"to"OH)6
Try it online!
The code presented above requires the following header:
=N["dinosaur""lamb""princess""reindeer""train")=G["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")=H["bumpy""fluffy""furry""fuzzy""glittery""glossy""hairy""red""rough""rusty""shiny""silky""slippery""soft""sparkly""squashy""thick""velvety""woolly")
There's a small issue with using the 'Header' feature in TIO with Pyth, as it looks like TIO joins the code blocks on newlines, and newlines are significant in Pyth. Here is a link to the same code using the 'Header' block, with a junk line in the output.
JONj_ms.ic"That's¶ my ¶¶ts ¶ is ¶o ¶."b[?d" not"kJ?d", i""! I"OG?d"to"sOH)6 Newlines replaced with ¶
Implicit: k="", b=newline
From header: N=things, G=parts, H=properties
JON Choose a random element from N, store in J
m 6 Map [0-6), as d, using:
?d" not"k If d is truthy (i.e. not 0), yield " not", else ""
J J (the chosen thing)
?d", i""! I" ", i" if d else "! I"
OG Random element from G
?d"to"s "to" if d else "s"
OH Random element from H
[ ) Wrap the previous 6 results in an array
c"That's¶ my ¶¶ts ¶ is ¶o ¶."b Split the template string on newlines
.i Interleave the template string elements with the previous list
s Concatenate
_ Reverse lines
j Join on newlines, implicit print
Edit: Rewrite to golf 10 bytes, previous version: J+" my "ONV5%"That's not%s, its %s is too %s."[JOGOH;%"That's%s! Its %s is so %s."[JOGOH
$endgroup$
add a comment |
$begingroup$
Perl 5.10, 127 bytes
Run with perl -M5.010 -f filename.pl.
my @t = qw(dinosaur lamb princess reindeer train);
my @r = qw(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);
my @p = qw(bumpy fluffy furry fuzzy glittery glossy hairy red rough rusty shiny
silky slippery soft sparkly squashy thick velvety woolly);
sub rrand@_$a=" my $t[r@t]";say"That's not$a, its $r[r@r] is too $p[r@p]."for(1..5);say"That's$a! Its $r[r@r] is so $p[r@p]."
$endgroup$
add a comment |
$begingroup$
JavaScript ES6, 149 (+15?) bytes
a = ["dinosaur", "lamb", "princess", "reindeer", "train"]
b = ["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"]
c = ["bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly"]
// r=x=>x[parseInt(Math.random()*x.length)] 164 for better random on fast pc
r=x=>x[new Date%x.length]
s=r(a)
g=j=>console.log(`That's $j?`not my $s, its $r(b) is to`:`my $s! Its $r(b) is s`o $r(c).`)
a.map(g)
g()$endgroup$
$begingroup$
Welcome to Code Golf! Good work!
$endgroup$
– AJFaraday
Jun 11 at 12:48
1
$begingroup$
Thank's AJ! Appreciate the welcome :)
$endgroup$
– Onitz
Jun 11 at 20:12
add a comment |
$begingroup$
Batch File, 434 424 + 7 bytes
Executed via cmd/q/c.
Code not counted
set a=dinosaur lamb princess reindeer train
set b=back bells body bows crown dress ears engine fan flippers funnel hoobes horns neck nose roof sash side spines spots tail teeth tiara wheels windows
set c=bumpy fluffy furry fizzy glittery glossy hair red rough rusty shiny silky slippery soft sparkly squashy thick velvety woolly
Code counted
set q=random
set m=set/ar=1+%%%q%%%%%%%
call %m%5
for /f "tokens=%r%" %%x in ("%a%")do set x=%%x
:a
set/ad+=1
call %m%25
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
call %m%19
for /f "tokens=%r%" %%z in ("%c%")do echo That's not my %x%, its %y% is too %%z.
if %d% neq 5 goto a
call %m%25
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
call %m%19
for /f "tokens=%r%" %%z in ("%c%")do echo That's my %x%! Its %y% is so %%z.
I'll go through some challenges you must face and explain/justify what I did so others can improve.
Choose a random element from an array
I did this by generating a random number between 1 and n where n is the amount of elements in that array. I then used this random number as the token to grab in each for loop (tokens=%r%). Because I did it this way, I could not nest these for loops anymore, as tokens=!r! was not working for me (with delayed expansion). This would've saved quite a few bytes as it would've removed the need to save the tokens as variables (set x=%%x).
Random number generationm is my random number generation macro. Doing it this way saves 32 bytes over doing it like set/ar=%random%%%n+1 every line. You could semi-cheat and decide that tokens y and z are to be the same element:
call %m%19
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
for /f "tokens=%r%" %%z in ("%c%")do echo That's not my %x%, its %y% is too %%z.
This would, while still retaining some randomness, exclude the final 6 elements of c. This would save a minimum of 20 bytes, but I don't think this is true to the op's requirements.
Theoretical Improvements
I spent quite a while trying to make this "pseudo-code" work, while still saving bytes:
set 1-5=echo That's not my %x%, its %y% is too %%z.
set 6=echo That's my %x%! Its %y% is so %%z.
...
set/ad+=1
for /f "tokens=%r%" %%z in ("%c%")do call %%d%%
Unfortunately the setup for this is proving to take up way too many bytes to be profitable (have to implement in < 144 bytes) but I can't shake the feeling that adding the last 4 lines of code are superfluous and janky.
$endgroup$
$begingroup$
You're not allowed to take inputs via pre-defined variables. You'll have to take it in as actual input through any of the standard IO methods
$endgroup$
– Jo King
Jun 11 at 5:51
1
$begingroup$
@JoKing From the challenge:The lists of source words are not part of your answer (in TIO they can be added to the header).
$endgroup$
– AdmBorkBork
Jun 11 at 16:28
$begingroup$
I'm unsure if it is allowed or not as I have seen it done both ways in other answers, but for those of you curious it would add 29 bytes to my answer in the form ofset a=%~1, etc.
$endgroup$
– BDM
Jun 11 at 21:31
add a comment |
$begingroup$
ink, 119 bytes
~a=LIST_RANDOM(a)
-(l)That'sl<6: not my a! Its LIST_RANDOM(b) is l<6:too LIST_RANDOM(c)
l<6:->l
With the lists defined as
LIST a=(dinosaur),(lamb),(princess),(reindeer),(train)
LIST b=(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)
LIST c=(bumpy),(fluffy),(furry),(fuzzy),(glittery),(glossy),(hairy),(red),(rough),(rusty),(shiny),(silky),(slippery),(soft),(sparkly),(squashy),(thick),(velvety),(woolly)
Try it online!
Though depending on what counts as a list, there are other approaches. If a list can be a function that randomly returns a list item, the following approach is only 91 bytes:
~temp t=u()
-(l)That'sl<6: not my t! Its p() is l<6:too q()
l<6:->l
(with the "lists" defined as follows)
==function u
~return "train"
==function p
~return "spines"
==function q
~return " glittery."
Try it online!
There's also the following approach.
~temp t="train"
-(l)That'sl<6: not my t! Its spines is l<6:too glittery
l<6:->l
Try it online!
This solution is 389 bytes, but if the shuffle literals (which in this scenario can't really be moved) count as list definitions and can be excluded from the byte count, this drops to 80 bytes.
$endgroup$
add a comment |
$begingroup$
Bash +awk, 209 bytes
T=$(shuf $1|head -1)
join <(sed "s/.*/$Tt&/" $2) <(sed "s/.*/$Tt&/" $3)|shuf|awk 'NR<6printf "That'''s not my %s, its %s is too %s.n",$1,$2,$3NR==6printf "That'''s my %s! Its %s is so %s.n",$1,$2,$3'
Try it online!
Accepts inputs as things parts properties where each is a file with one item per line of the desired type.
This is a file-centered approach. May try an array-centered approach later to see if it can be improved.
$endgroup$
add a comment |
$begingroup$
Python 3, 130 bytes
Taking your requirements literally, and taking carriage returns to be one byte each:
y=0
def x():
global y
y=1-y
print(("That's not my lamb, it's "+b[0:1][y]+" is too redn")*5+"That's my lamb! Its fan is so red")
$endgroup$
$begingroup$
"It must not consistently reproduce the same text." From what I can tell, your code will always alternate between one of two options, which seems like consistent output to me. Also, this case of always using the same properties on every single line has been explicitly disallowed in the comments clarifications.
$endgroup$
– Value Ink
Jun 10 at 22:01
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "200"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f186576%2fthats-not-my-x-its-y-is-too-z%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
17 Answers
17
active
oldest
votes
17 Answers
17
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
05AB1E, 63 bytes
ΩU6F€Ω`XN5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
Try it online.
68 bytes version which doesn't output duplicated parts nor properties:
ΩUε.r6£}øεXª`N5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
Try it online.
Both programs assumes the list of things is the first input, and a list containing the list of parts and list of properties is the second input.
Explanation:
Ω # Pop and push a random element of the things-list
U # Pop and store it in variable `X`
6F # Loop 6 times:
€Ω # Get a random element from both the parts and properties list
` # Push them to the stack
X # And also push variable `X`
# (the order on the stack is now: property, part, thing)
N5Qi # If it's the last iteration:
“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“
'# Push dictionary string "that's my ÿ! its ÿ is so ÿ."
ë # Else:
“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“
'# Push dictionary string "that's not my ÿ, its ÿ is too ÿ."
# (where the `ÿ` are automatically replaced with the words on the stack)
}.ª # After the if-else: sentence-capitalize the strings
# (so the "That's " as well as the "! Its")
, # And output it with trailing newline
ΩU # Pop and store a random thing in variable `X`
ε # Map the list of lists of parts/properties to:
.r # Shuffle the list
6£ # And leave the first six elements
}ø # After the map: zip/transpose to create pairs of part & property
ε # Foreach over the pairs:
`XN5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
# And the rest of the code is the same as above
See this 05AB1E tip of mine (section How to use the dictionary?) to understand why “€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ is "that's my ÿ! its ÿ is so ÿ." and “€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“ is "that's not my ÿ, its ÿ is too ÿ.".
$endgroup$
add a comment |
$begingroup$
05AB1E, 63 bytes
ΩU6F€Ω`XN5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
Try it online.
68 bytes version which doesn't output duplicated parts nor properties:
ΩUε.r6£}øεXª`N5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
Try it online.
Both programs assumes the list of things is the first input, and a list containing the list of parts and list of properties is the second input.
Explanation:
Ω # Pop and push a random element of the things-list
U # Pop and store it in variable `X`
6F # Loop 6 times:
€Ω # Get a random element from both the parts and properties list
` # Push them to the stack
X # And also push variable `X`
# (the order on the stack is now: property, part, thing)
N5Qi # If it's the last iteration:
“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“
'# Push dictionary string "that's my ÿ! its ÿ is so ÿ."
ë # Else:
“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“
'# Push dictionary string "that's not my ÿ, its ÿ is too ÿ."
# (where the `ÿ` are automatically replaced with the words on the stack)
}.ª # After the if-else: sentence-capitalize the strings
# (so the "That's " as well as the "! Its")
, # And output it with trailing newline
ΩU # Pop and store a random thing in variable `X`
ε # Map the list of lists of parts/properties to:
.r # Shuffle the list
6£ # And leave the first six elements
}ø # After the map: zip/transpose to create pairs of part & property
ε # Foreach over the pairs:
`XN5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
# And the rest of the code is the same as above
See this 05AB1E tip of mine (section How to use the dictionary?) to understand why “€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ is "that's my ÿ! its ÿ is so ÿ." and “€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“ is "that's not my ÿ, its ÿ is too ÿ.".
$endgroup$
add a comment |
$begingroup$
05AB1E, 63 bytes
ΩU6F€Ω`XN5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
Try it online.
68 bytes version which doesn't output duplicated parts nor properties:
ΩUε.r6£}øεXª`N5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
Try it online.
Both programs assumes the list of things is the first input, and a list containing the list of parts and list of properties is the second input.
Explanation:
Ω # Pop and push a random element of the things-list
U # Pop and store it in variable `X`
6F # Loop 6 times:
€Ω # Get a random element from both the parts and properties list
` # Push them to the stack
X # And also push variable `X`
# (the order on the stack is now: property, part, thing)
N5Qi # If it's the last iteration:
“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“
'# Push dictionary string "that's my ÿ! its ÿ is so ÿ."
ë # Else:
“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“
'# Push dictionary string "that's not my ÿ, its ÿ is too ÿ."
# (where the `ÿ` are automatically replaced with the words on the stack)
}.ª # After the if-else: sentence-capitalize the strings
# (so the "That's " as well as the "! Its")
, # And output it with trailing newline
ΩU # Pop and store a random thing in variable `X`
ε # Map the list of lists of parts/properties to:
.r # Shuffle the list
6£ # And leave the first six elements
}ø # After the map: zip/transpose to create pairs of part & property
ε # Foreach over the pairs:
`XN5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
# And the rest of the code is the same as above
See this 05AB1E tip of mine (section How to use the dictionary?) to understand why “€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ is "that's my ÿ! its ÿ is so ÿ." and “€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“ is "that's not my ÿ, its ÿ is too ÿ.".
$endgroup$
05AB1E, 63 bytes
ΩU6F€Ω`XN5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
Try it online.
68 bytes version which doesn't output duplicated parts nor properties:
ΩUε.r6£}øεXª`N5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
Try it online.
Both programs assumes the list of things is the first input, and a list containing the list of parts and list of properties is the second input.
Explanation:
Ω # Pop and push a random element of the things-list
U # Pop and store it in variable `X`
6F # Loop 6 times:
€Ω # Get a random element from both the parts and properties list
` # Push them to the stack
X # And also push variable `X`
# (the order on the stack is now: property, part, thing)
N5Qi # If it's the last iteration:
“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“
'# Push dictionary string "that's my ÿ! its ÿ is so ÿ."
ë # Else:
“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“
'# Push dictionary string "that's not my ÿ, its ÿ is too ÿ."
# (where the `ÿ` are automatically replaced with the words on the stack)
}.ª # After the if-else: sentence-capitalize the strings
# (so the "That's " as well as the "! Its")
, # And output it with trailing newline
ΩU # Pop and store a random thing in variable `X`
ε # Map the list of lists of parts/properties to:
.r # Shuffle the list
6£ # And leave the first six elements
}ø # After the map: zip/transpose to create pairs of part & property
ε # Foreach over the pairs:
`XN5Qi“€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ë“€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“}.ª,
# And the rest of the code is the same as above
See this 05AB1E tip of mine (section How to use the dictionary?) to understand why “€Š's€¯ ÿ!€ç ÿ€ˆ€Ê ÿ.“ is "that's my ÿ! its ÿ is so ÿ." and “€Š's€–€¯ ÿ,€ç ÿ€ˆ…« ÿ.“ is "that's not my ÿ, its ÿ is too ÿ.".
answered Jun 11 at 10:48
Kevin CruijssenKevin Cruijssen
46.6k5 gold badges79 silver badges234 bronze badges
46.6k5 gold badges79 silver badges234 bronze badges
add a comment |
add a comment |
$begingroup$
Python 3, 149 bytes
lambda a,*l:shuffle(a)or["That's "+s%(a[0],*map(choice,l))for s in["not my %s, its %s is too %s."]*5+["my %s! Its %s is so %s."]]
from random import*
Try it online!
-9 bytes thanks to movatica
$endgroup$
$begingroup$
Nice work! Shorter tuple syntax: 149 bytes
$endgroup$
– movatica
Jun 10 at 9:22
1
$begingroup$
@movatica Ooh, nice. Thanks!
$endgroup$
– HyperNeutrino
Jun 10 at 13:19
$begingroup$
"That's not my reindeer, its ears is too bumpy." - needs something to switch between is/are.
$endgroup$
– John Hunt
Jun 11 at 15:08
1
$begingroup$
@JohnHunt the rules say to ignore plurals.
$endgroup$
– HyperNeutrino
Jun 11 at 15:51
$begingroup$
My mistake. This is v.impressive
$endgroup$
– John Hunt
Jun 12 at 10:06
add a comment |
$begingroup$
Python 3, 149 bytes
lambda a,*l:shuffle(a)or["That's "+s%(a[0],*map(choice,l))for s in["not my %s, its %s is too %s."]*5+["my %s! Its %s is so %s."]]
from random import*
Try it online!
-9 bytes thanks to movatica
$endgroup$
$begingroup$
Nice work! Shorter tuple syntax: 149 bytes
$endgroup$
– movatica
Jun 10 at 9:22
1
$begingroup$
@movatica Ooh, nice. Thanks!
$endgroup$
– HyperNeutrino
Jun 10 at 13:19
$begingroup$
"That's not my reindeer, its ears is too bumpy." - needs something to switch between is/are.
$endgroup$
– John Hunt
Jun 11 at 15:08
1
$begingroup$
@JohnHunt the rules say to ignore plurals.
$endgroup$
– HyperNeutrino
Jun 11 at 15:51
$begingroup$
My mistake. This is v.impressive
$endgroup$
– John Hunt
Jun 12 at 10:06
add a comment |
$begingroup$
Python 3, 149 bytes
lambda a,*l:shuffle(a)or["That's "+s%(a[0],*map(choice,l))for s in["not my %s, its %s is too %s."]*5+["my %s! Its %s is so %s."]]
from random import*
Try it online!
-9 bytes thanks to movatica
$endgroup$
Python 3, 149 bytes
lambda a,*l:shuffle(a)or["That's "+s%(a[0],*map(choice,l))for s in["not my %s, its %s is too %s."]*5+["my %s! Its %s is so %s."]]
from random import*
Try it online!
-9 bytes thanks to movatica
edited Jun 10 at 13:19
answered Jun 9 at 14:39
HyperNeutrinoHyperNeutrino
20.3k4 gold badges41 silver badges153 bronze badges
20.3k4 gold badges41 silver badges153 bronze badges
$begingroup$
Nice work! Shorter tuple syntax: 149 bytes
$endgroup$
– movatica
Jun 10 at 9:22
1
$begingroup$
@movatica Ooh, nice. Thanks!
$endgroup$
– HyperNeutrino
Jun 10 at 13:19
$begingroup$
"That's not my reindeer, its ears is too bumpy." - needs something to switch between is/are.
$endgroup$
– John Hunt
Jun 11 at 15:08
1
$begingroup$
@JohnHunt the rules say to ignore plurals.
$endgroup$
– HyperNeutrino
Jun 11 at 15:51
$begingroup$
My mistake. This is v.impressive
$endgroup$
– John Hunt
Jun 12 at 10:06
add a comment |
$begingroup$
Nice work! Shorter tuple syntax: 149 bytes
$endgroup$
– movatica
Jun 10 at 9:22
1
$begingroup$
@movatica Ooh, nice. Thanks!
$endgroup$
– HyperNeutrino
Jun 10 at 13:19
$begingroup$
"That's not my reindeer, its ears is too bumpy." - needs something to switch between is/are.
$endgroup$
– John Hunt
Jun 11 at 15:08
1
$begingroup$
@JohnHunt the rules say to ignore plurals.
$endgroup$
– HyperNeutrino
Jun 11 at 15:51
$begingroup$
My mistake. This is v.impressive
$endgroup$
– John Hunt
Jun 12 at 10:06
$begingroup$
Nice work! Shorter tuple syntax: 149 bytes
$endgroup$
– movatica
Jun 10 at 9:22
$begingroup$
Nice work! Shorter tuple syntax: 149 bytes
$endgroup$
– movatica
Jun 10 at 9:22
1
1
$begingroup$
@movatica Ooh, nice. Thanks!
$endgroup$
– HyperNeutrino
Jun 10 at 13:19
$begingroup$
@movatica Ooh, nice. Thanks!
$endgroup$
– HyperNeutrino
Jun 10 at 13:19
$begingroup$
"That's not my reindeer, its ears is too bumpy." - needs something to switch between is/are.
$endgroup$
– John Hunt
Jun 11 at 15:08
$begingroup$
"That's not my reindeer, its ears is too bumpy." - needs something to switch between is/are.
$endgroup$
– John Hunt
Jun 11 at 15:08
1
1
$begingroup$
@JohnHunt the rules say to ignore plurals.
$endgroup$
– HyperNeutrino
Jun 11 at 15:51
$begingroup$
@JohnHunt the rules say to ignore plurals.
$endgroup$
– HyperNeutrino
Jun 11 at 15:51
$begingroup$
My mistake. This is v.impressive
$endgroup$
– John Hunt
Jun 12 at 10:06
$begingroup$
My mistake. This is v.impressive
$endgroup$
– John Hunt
Jun 12 at 10:06
add a comment |
$begingroup$
Charcoal, 72 bytes
≔‽θθF⁵«That's not my θ, its ‽η is too ‽ζ.⸿»That's my θ! Its ‽η is so ‽ζ.
Try it online! Link is to verbose version of code. Expects the arrays of things, parts and properties to be in the variables θ, η and ζ, which is most easily arranged by providing them in the input rather than the header. Explanation:
≔‽θθ
Pick a random thing.
F⁵«That's not my θ, its ‽η is too ‽ζ.⸿»
Print five negative sentences.
That's my θ! Its ‽η is so ‽ζ.
Print the positive sentence.
$endgroup$
add a comment |
$begingroup$
Charcoal, 72 bytes
≔‽θθF⁵«That's not my θ, its ‽η is too ‽ζ.⸿»That's my θ! Its ‽η is so ‽ζ.
Try it online! Link is to verbose version of code. Expects the arrays of things, parts and properties to be in the variables θ, η and ζ, which is most easily arranged by providing them in the input rather than the header. Explanation:
≔‽θθ
Pick a random thing.
F⁵«That's not my θ, its ‽η is too ‽ζ.⸿»
Print five negative sentences.
That's my θ! Its ‽η is so ‽ζ.
Print the positive sentence.
$endgroup$
add a comment |
$begingroup$
Charcoal, 72 bytes
≔‽θθF⁵«That's not my θ, its ‽η is too ‽ζ.⸿»That's my θ! Its ‽η is so ‽ζ.
Try it online! Link is to verbose version of code. Expects the arrays of things, parts and properties to be in the variables θ, η and ζ, which is most easily arranged by providing them in the input rather than the header. Explanation:
≔‽θθ
Pick a random thing.
F⁵«That's not my θ, its ‽η is too ‽ζ.⸿»
Print five negative sentences.
That's my θ! Its ‽η is so ‽ζ.
Print the positive sentence.
$endgroup$
Charcoal, 72 bytes
≔‽θθF⁵«That's not my θ, its ‽η is too ‽ζ.⸿»That's my θ! Its ‽η is so ‽ζ.
Try it online! Link is to verbose version of code. Expects the arrays of things, parts and properties to be in the variables θ, η and ζ, which is most easily arranged by providing them in the input rather than the header. Explanation:
≔‽θθ
Pick a random thing.
F⁵«That's not my θ, its ‽η is too ‽ζ.⸿»
Print five negative sentences.
That's my θ! Its ‽η is so ‽ζ.
Print the positive sentence.
answered Jun 9 at 15:43
NeilNeil
85.5k8 gold badges46 silver badges183 bronze badges
85.5k8 gold badges46 silver badges183 bronze badges
add a comment |
add a comment |
$begingroup$
Japt v2.0a0 -R, 73 bytes
ö
6Æ`Tt's `not `pT=Y<5my +`!,`gT 73dT*Hts Vö `tÑ?`ë2!T Wö.
Takes the three lists as U, V, and W. Those are the default input variables anyways, so just put the three lists in the input section.
Try it
ö Saves the random object in variable U
6Æ Range [0..6), and map each to the following string
`That's The string "That's " plus
`not `pT=Y<5 "not " if the index is less than 5 (and store that in variable T), else ""
my Literal "my " plus
+`!,`gT U plus ',' if T, else '!'
73dT*Hts "its " if T, else "Its "
Vö Random item from V
is
`tsooo`ë2!T "too" if T, else "so"
Wö. Random item from V, plus a period
$endgroup$
$begingroup$
Very nice trick with "too/so" :)
$endgroup$
– Shaggy
Jun 13 at 21:41
add a comment |
$begingroup$
Japt v2.0a0 -R, 73 bytes
ö
6Æ`Tt's `not `pT=Y<5my +`!,`gT 73dT*Hts Vö `tÑ?`ë2!T Wö.
Takes the three lists as U, V, and W. Those are the default input variables anyways, so just put the three lists in the input section.
Try it
ö Saves the random object in variable U
6Æ Range [0..6), and map each to the following string
`That's The string "That's " plus
`not `pT=Y<5 "not " if the index is less than 5 (and store that in variable T), else ""
my Literal "my " plus
+`!,`gT U plus ',' if T, else '!'
73dT*Hts "its " if T, else "Its "
Vö Random item from V
is
`tsooo`ë2!T "too" if T, else "so"
Wö. Random item from V, plus a period
$endgroup$
$begingroup$
Very nice trick with "too/so" :)
$endgroup$
– Shaggy
Jun 13 at 21:41
add a comment |
$begingroup$
Japt v2.0a0 -R, 73 bytes
ö
6Æ`Tt's `not `pT=Y<5my +`!,`gT 73dT*Hts Vö `tÑ?`ë2!T Wö.
Takes the three lists as U, V, and W. Those are the default input variables anyways, so just put the three lists in the input section.
Try it
ö Saves the random object in variable U
6Æ Range [0..6), and map each to the following string
`That's The string "That's " plus
`not `pT=Y<5 "not " if the index is less than 5 (and store that in variable T), else ""
my Literal "my " plus
+`!,`gT U plus ',' if T, else '!'
73dT*Hts "its " if T, else "Its "
Vö Random item from V
is
`tsooo`ë2!T "too" if T, else "so"
Wö. Random item from V, plus a period
$endgroup$
Japt v2.0a0 -R, 73 bytes
ö
6Æ`Tt's `not `pT=Y<5my +`!,`gT 73dT*Hts Vö `tÑ?`ë2!T Wö.
Takes the three lists as U, V, and W. Those are the default input variables anyways, so just put the three lists in the input section.
Try it
ö Saves the random object in variable U
6Æ Range [0..6), and map each to the following string
`That's The string "That's " plus
`not `pT=Y<5 "not " if the index is less than 5 (and store that in variable T), else ""
my Literal "my " plus
+`!,`gT U plus ',' if T, else '!'
73dT*Hts "its " if T, else "Its "
Vö Random item from V
is
`tsooo`ë2!T "too" if T, else "so"
Wö. Random item from V, plus a period
answered Jun 9 at 18:18
Embodiment of IgnoranceEmbodiment of Ignorance
4,2361 silver badge28 bronze badges
4,2361 silver badge28 bronze badges
$begingroup$
Very nice trick with "too/so" :)
$endgroup$
– Shaggy
Jun 13 at 21:41
add a comment |
$begingroup$
Very nice trick with "too/so" :)
$endgroup$
– Shaggy
Jun 13 at 21:41
$begingroup$
Very nice trick with "too/so" :)
$endgroup$
– Shaggy
Jun 13 at 21:41
$begingroup$
Very nice trick with "too/so" :)
$endgroup$
– Shaggy
Jun 13 at 21:41
add a comment |
$begingroup$
PowerShell, 147 bytes
This main program will not repeat any part or property in a run, and has reasonable randomization.
$t=$l|Random
$a=$a|Random -c 6
$r=$r|Random -c 6
0..4|%"That's not my $t, its $($a[$_]) is too "+$r[$_]
"That's my $t! Its $($a[5]) is so "+$r[5]
Try it online!
Writing get-random so many times costs so many characters! However, unless you are willing to let parts and properties be repeated, I can't see a way to shrink this in powershell any further. Unless you move the first 3 line pipes to the end of the 3 assignment lines in the header. To have something like
# Header
$l = ("dinosaur", "lamb", "princess", "reindeer", "train")|Get-Random
$a = ("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")|sortGet-Random
$r = ("bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly")|sortGet-Random
# Main
(1..5)|%echo("That's not my $t, its "+$a[$_]+" is too "+$r[$_])
"That's my $t! Its "+$a[6]+" is so "+$r[6]
But that seems like it's cheating, and still doesn't beat Neil's answer.
Edit: Thanks for the tips Matt, and thanks AdmBorkBork for fleshing them out, removing the 3 sets of get- text reduced it to 159 bytes, then some more golf from Adm got it down to 147. The code I was thinking of which allowed duplicates and contradictory statements was 144 characters after applying the same golf tips.
function n(random 18)+1
$t=$l[(n)%5]
0..4|%"That's not my $t, its $($a[(n)]) is too "+$r[(n)]
"That's my $t! Its $($a[$(n)]) is so "+$r[(n)]
Try it online!
However, it not only has a tendency to say the same thing multiple times, but it pretty much requires that your inputs be the same number of elements. I believe the pseudo random number generator being used is heavily dependent on the clock, and quick repeated calls to it can often result in the same result. Then it has the condition that it only uses the whole list if all lists are the same length.With only saving 3~5 characters and having so many caveats, I prefer the code at the start of this post.
$endgroup$
1
$begingroup$
Welcome to PPCG! Parts and properties can be repeated so that should save you some bytes.
$endgroup$
– Shaggy
Jun 10 at 9:51
2
$begingroup$
You can drop theGet-fromGet-Random. Its the default verb tested when evaluating commands.
$endgroup$
– Matt
Jun 10 at 12:20
2
$begingroup$
Welcome! Some easy golfs gets you down to 147 bytes
$endgroup$
– AdmBorkBork
Jun 10 at 13:32
add a comment |
$begingroup$
PowerShell, 147 bytes
This main program will not repeat any part or property in a run, and has reasonable randomization.
$t=$l|Random
$a=$a|Random -c 6
$r=$r|Random -c 6
0..4|%"That's not my $t, its $($a[$_]) is too "+$r[$_]
"That's my $t! Its $($a[5]) is so "+$r[5]
Try it online!
Writing get-random so many times costs so many characters! However, unless you are willing to let parts and properties be repeated, I can't see a way to shrink this in powershell any further. Unless you move the first 3 line pipes to the end of the 3 assignment lines in the header. To have something like
# Header
$l = ("dinosaur", "lamb", "princess", "reindeer", "train")|Get-Random
$a = ("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")|sortGet-Random
$r = ("bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly")|sortGet-Random
# Main
(1..5)|%echo("That's not my $t, its "+$a[$_]+" is too "+$r[$_])
"That's my $t! Its "+$a[6]+" is so "+$r[6]
But that seems like it's cheating, and still doesn't beat Neil's answer.
Edit: Thanks for the tips Matt, and thanks AdmBorkBork for fleshing them out, removing the 3 sets of get- text reduced it to 159 bytes, then some more golf from Adm got it down to 147. The code I was thinking of which allowed duplicates and contradictory statements was 144 characters after applying the same golf tips.
function n(random 18)+1
$t=$l[(n)%5]
0..4|%"That's not my $t, its $($a[(n)]) is too "+$r[(n)]
"That's my $t! Its $($a[$(n)]) is so "+$r[(n)]
Try it online!
However, it not only has a tendency to say the same thing multiple times, but it pretty much requires that your inputs be the same number of elements. I believe the pseudo random number generator being used is heavily dependent on the clock, and quick repeated calls to it can often result in the same result. Then it has the condition that it only uses the whole list if all lists are the same length.With only saving 3~5 characters and having so many caveats, I prefer the code at the start of this post.
$endgroup$
1
$begingroup$
Welcome to PPCG! Parts and properties can be repeated so that should save you some bytes.
$endgroup$
– Shaggy
Jun 10 at 9:51
2
$begingroup$
You can drop theGet-fromGet-Random. Its the default verb tested when evaluating commands.
$endgroup$
– Matt
Jun 10 at 12:20
2
$begingroup$
Welcome! Some easy golfs gets you down to 147 bytes
$endgroup$
– AdmBorkBork
Jun 10 at 13:32
add a comment |
$begingroup$
PowerShell, 147 bytes
This main program will not repeat any part or property in a run, and has reasonable randomization.
$t=$l|Random
$a=$a|Random -c 6
$r=$r|Random -c 6
0..4|%"That's not my $t, its $($a[$_]) is too "+$r[$_]
"That's my $t! Its $($a[5]) is so "+$r[5]
Try it online!
Writing get-random so many times costs so many characters! However, unless you are willing to let parts and properties be repeated, I can't see a way to shrink this in powershell any further. Unless you move the first 3 line pipes to the end of the 3 assignment lines in the header. To have something like
# Header
$l = ("dinosaur", "lamb", "princess", "reindeer", "train")|Get-Random
$a = ("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")|sortGet-Random
$r = ("bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly")|sortGet-Random
# Main
(1..5)|%echo("That's not my $t, its "+$a[$_]+" is too "+$r[$_])
"That's my $t! Its "+$a[6]+" is so "+$r[6]
But that seems like it's cheating, and still doesn't beat Neil's answer.
Edit: Thanks for the tips Matt, and thanks AdmBorkBork for fleshing them out, removing the 3 sets of get- text reduced it to 159 bytes, then some more golf from Adm got it down to 147. The code I was thinking of which allowed duplicates and contradictory statements was 144 characters after applying the same golf tips.
function n(random 18)+1
$t=$l[(n)%5]
0..4|%"That's not my $t, its $($a[(n)]) is too "+$r[(n)]
"That's my $t! Its $($a[$(n)]) is so "+$r[(n)]
Try it online!
However, it not only has a tendency to say the same thing multiple times, but it pretty much requires that your inputs be the same number of elements. I believe the pseudo random number generator being used is heavily dependent on the clock, and quick repeated calls to it can often result in the same result. Then it has the condition that it only uses the whole list if all lists are the same length.With only saving 3~5 characters and having so many caveats, I prefer the code at the start of this post.
$endgroup$
PowerShell, 147 bytes
This main program will not repeat any part or property in a run, and has reasonable randomization.
$t=$l|Random
$a=$a|Random -c 6
$r=$r|Random -c 6
0..4|%"That's not my $t, its $($a[$_]) is too "+$r[$_]
"That's my $t! Its $($a[5]) is so "+$r[5]
Try it online!
Writing get-random so many times costs so many characters! However, unless you are willing to let parts and properties be repeated, I can't see a way to shrink this in powershell any further. Unless you move the first 3 line pipes to the end of the 3 assignment lines in the header. To have something like
# Header
$l = ("dinosaur", "lamb", "princess", "reindeer", "train")|Get-Random
$a = ("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")|sortGet-Random
$r = ("bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly")|sortGet-Random
# Main
(1..5)|%echo("That's not my $t, its "+$a[$_]+" is too "+$r[$_])
"That's my $t! Its "+$a[6]+" is so "+$r[6]
But that seems like it's cheating, and still doesn't beat Neil's answer.
Edit: Thanks for the tips Matt, and thanks AdmBorkBork for fleshing them out, removing the 3 sets of get- text reduced it to 159 bytes, then some more golf from Adm got it down to 147. The code I was thinking of which allowed duplicates and contradictory statements was 144 characters after applying the same golf tips.
function n(random 18)+1
$t=$l[(n)%5]
0..4|%"That's not my $t, its $($a[(n)]) is too "+$r[(n)]
"That's my $t! Its $($a[$(n)]) is so "+$r[(n)]
Try it online!
However, it not only has a tendency to say the same thing multiple times, but it pretty much requires that your inputs be the same number of elements. I believe the pseudo random number generator being used is heavily dependent on the clock, and quick repeated calls to it can often result in the same result. Then it has the condition that it only uses the whole list if all lists are the same length.With only saving 3~5 characters and having so many caveats, I prefer the code at the start of this post.
edited Jun 10 at 13:56
answered Jun 10 at 9:48
BeowulfNode42BeowulfNode42
1613 bronze badges
1613 bronze badges
1
$begingroup$
Welcome to PPCG! Parts and properties can be repeated so that should save you some bytes.
$endgroup$
– Shaggy
Jun 10 at 9:51
2
$begingroup$
You can drop theGet-fromGet-Random. Its the default verb tested when evaluating commands.
$endgroup$
– Matt
Jun 10 at 12:20
2
$begingroup$
Welcome! Some easy golfs gets you down to 147 bytes
$endgroup$
– AdmBorkBork
Jun 10 at 13:32
add a comment |
1
$begingroup$
Welcome to PPCG! Parts and properties can be repeated so that should save you some bytes.
$endgroup$
– Shaggy
Jun 10 at 9:51
2
$begingroup$
You can drop theGet-fromGet-Random. Its the default verb tested when evaluating commands.
$endgroup$
– Matt
Jun 10 at 12:20
2
$begingroup$
Welcome! Some easy golfs gets you down to 147 bytes
$endgroup$
– AdmBorkBork
Jun 10 at 13:32
1
1
$begingroup$
Welcome to PPCG! Parts and properties can be repeated so that should save you some bytes.
$endgroup$
– Shaggy
Jun 10 at 9:51
$begingroup$
Welcome to PPCG! Parts and properties can be repeated so that should save you some bytes.
$endgroup$
– Shaggy
Jun 10 at 9:51
2
2
$begingroup$
You can drop the
Get- from Get-Random. Its the default verb tested when evaluating commands.$endgroup$
– Matt
Jun 10 at 12:20
$begingroup$
You can drop the
Get- from Get-Random. Its the default verb tested when evaluating commands.$endgroup$
– Matt
Jun 10 at 12:20
2
2
$begingroup$
Welcome! Some easy golfs gets you down to 147 bytes
$endgroup$
– AdmBorkBork
Jun 10 at 13:32
$begingroup$
Welcome! Some easy golfs gets you down to 147 bytes
$endgroup$
– AdmBorkBork
Jun 10 at 13:32
add a comment |
$begingroup$
Jelly, 72 bytes
XWWẋ6;X€}⁶pʋ€s5“ʠ˵ʋb⁵J¥¢wBD®-Ƥd(CḤ!²kT“Ø!1ẆÑ⁹ṁṾƤṛḄėÄṂMƓṾṖ¿O*½»Ỵ€¤żⱮ"ẎY
Try it online!
$endgroup$
add a comment |
$begingroup$
Jelly, 72 bytes
XWWẋ6;X€}⁶pʋ€s5“ʠ˵ʋb⁵J¥¢wBD®-Ƥd(CḤ!²kT“Ø!1ẆÑ⁹ṁṾƤṛḄėÄṂMƓṾṖ¿O*½»Ỵ€¤żⱮ"ẎY
Try it online!
$endgroup$
add a comment |
$begingroup$
Jelly, 72 bytes
XWWẋ6;X€}⁶pʋ€s5“ʠ˵ʋb⁵J¥¢wBD®-Ƥd(CḤ!²kT“Ø!1ẆÑ⁹ṁṾƤṛḄėÄṂMƓṾṖ¿O*½»Ỵ€¤żⱮ"ẎY
Try it online!
$endgroup$
Jelly, 72 bytes
XWWẋ6;X€}⁶pʋ€s5“ʠ˵ʋb⁵J¥¢wBD®-Ƥd(CḤ!²kT“Ø!1ẆÑ⁹ṁṾƤṛḄėÄṂMƓṾṖ¿O*½»Ỵ€¤żⱮ"ẎY
Try it online!
answered Jun 10 at 10:30
Erik the OutgolferErik the Outgolfer
34.1k4 gold badges30 silver badges107 bronze badges
34.1k4 gold badges30 silver badges107 bronze badges
add a comment |
add a comment |
$begingroup$
JavaScript, 129
(a,b,c)=>(z='',a.forEach((f,i)=>z+=`That's $q=i!=5?"not ":""my $f$q?", i":"! I"ts $b[i] is $q?"to":"s"o $c[i].n`),z)
input is three arrays, returns string
$endgroup$
add a comment |
$begingroup$
JavaScript, 129
(a,b,c)=>(z='',a.forEach((f,i)=>z+=`That's $q=i!=5?"not ":""my $f$q?", i":"! I"ts $b[i] is $q?"to":"s"o $c[i].n`),z)
input is three arrays, returns string
$endgroup$
add a comment |
$begingroup$
JavaScript, 129
(a,b,c)=>(z='',a.forEach((f,i)=>z+=`That's $q=i!=5?"not ":""my $f$q?", i":"! I"ts $b[i] is $q?"to":"s"o $c[i].n`),z)
input is three arrays, returns string
$endgroup$
JavaScript, 129
(a,b,c)=>(z='',a.forEach((f,i)=>z+=`That's $q=i!=5?"not ":""my $f$q?", i":"! I"ts $b[i] is $q?"to":"s"o $c[i].n`),z)
input is three arrays, returns string
answered Jun 10 at 16:33
vityavvvityavv
6793 silver badges14 bronze badges
6793 silver badges14 bronze badges
add a comment |
add a comment |
$begingroup$
Ruby, 128 bytes
->a,*lt=a.sample;6.times
Try it online!
$endgroup$
add a comment |
$begingroup$
Ruby, 128 bytes
->a,*lt=a.sample;6.times
Try it online!
$endgroup$
add a comment |
$begingroup$
Ruby, 128 bytes
->a,*lt=a.sample;6.times
Try it online!
$endgroup$
Ruby, 128 bytes
->a,*lt=a.sample;6.times
Try it online!
answered Jun 10 at 21:31
Value InkValue Ink
8,5557 silver badges32 bronze badges
8,5557 silver badges32 bronze badges
add a comment |
add a comment |
$begingroup$
C#, 204 203 bytes
()=>int a(int x)=>new Random().Next(x);var j=t[a(5)];string s()=>$"That's not my j, its p[a(25)] is too o[a(19)].n";return s()+s()+s()+s()+s()+$"That's my j! Its p[a(25)] is so o[a(19)].";;
It is my first answer on this site, so I hope it works well. It also needs those three things, but according to question those do not count:
var t = new[] "dinosaur", "lamb", "princess", "reindeer", "train" ;
var p = new[] "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" ;
var o = new[] "bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly";
Try it online!
One less byte thanks to Sok.
$endgroup$
1
$begingroup$
Welcome to PPCG! I've taken the liberty of editing in a link to TIO into your answer, so that others can easily try your code for themselves - I would have given you the link to it in this comment, but the URI was too long unfortunately! I hope you enjoy your stay :o)
$endgroup$
– Sok
Jun 11 at 11:58
1
$begingroup$
One small golf for you as well - therisn't required, which will save you 2 bytes.
$endgroup$
– Sok
Jun 11 at 12:01
add a comment |
$begingroup$
C#, 204 203 bytes
()=>int a(int x)=>new Random().Next(x);var j=t[a(5)];string s()=>$"That's not my j, its p[a(25)] is too o[a(19)].n";return s()+s()+s()+s()+s()+$"That's my j! Its p[a(25)] is so o[a(19)].";;
It is my first answer on this site, so I hope it works well. It also needs those three things, but according to question those do not count:
var t = new[] "dinosaur", "lamb", "princess", "reindeer", "train" ;
var p = new[] "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" ;
var o = new[] "bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly";
Try it online!
One less byte thanks to Sok.
$endgroup$
1
$begingroup$
Welcome to PPCG! I've taken the liberty of editing in a link to TIO into your answer, so that others can easily try your code for themselves - I would have given you the link to it in this comment, but the URI was too long unfortunately! I hope you enjoy your stay :o)
$endgroup$
– Sok
Jun 11 at 11:58
1
$begingroup$
One small golf for you as well - therisn't required, which will save you 2 bytes.
$endgroup$
– Sok
Jun 11 at 12:01
add a comment |
$begingroup$
C#, 204 203 bytes
()=>int a(int x)=>new Random().Next(x);var j=t[a(5)];string s()=>$"That's not my j, its p[a(25)] is too o[a(19)].n";return s()+s()+s()+s()+s()+$"That's my j! Its p[a(25)] is so o[a(19)].";;
It is my first answer on this site, so I hope it works well. It also needs those three things, but according to question those do not count:
var t = new[] "dinosaur", "lamb", "princess", "reindeer", "train" ;
var p = new[] "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" ;
var o = new[] "bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly";
Try it online!
One less byte thanks to Sok.
$endgroup$
C#, 204 203 bytes
()=>int a(int x)=>new Random().Next(x);var j=t[a(5)];string s()=>$"That's not my j, its p[a(25)] is too o[a(19)].n";return s()+s()+s()+s()+s()+$"That's my j! Its p[a(25)] is so o[a(19)].";;
It is my first answer on this site, so I hope it works well. It also needs those three things, but according to question those do not count:
var t = new[] "dinosaur", "lamb", "princess", "reindeer", "train" ;
var p = new[] "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" ;
var o = new[] "bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly";
Try it online!
One less byte thanks to Sok.
edited Jun 12 at 5:42
answered Jun 11 at 6:29
Paweł MachPaweł Mach
1214 bronze badges
1214 bronze badges
1
$begingroup$
Welcome to PPCG! I've taken the liberty of editing in a link to TIO into your answer, so that others can easily try your code for themselves - I would have given you the link to it in this comment, but the URI was too long unfortunately! I hope you enjoy your stay :o)
$endgroup$
– Sok
Jun 11 at 11:58
1
$begingroup$
One small golf for you as well - therisn't required, which will save you 2 bytes.
$endgroup$
– Sok
Jun 11 at 12:01
add a comment |
1
$begingroup$
Welcome to PPCG! I've taken the liberty of editing in a link to TIO into your answer, so that others can easily try your code for themselves - I would have given you the link to it in this comment, but the URI was too long unfortunately! I hope you enjoy your stay :o)
$endgroup$
– Sok
Jun 11 at 11:58
1
$begingroup$
One small golf for you as well - therisn't required, which will save you 2 bytes.
$endgroup$
– Sok
Jun 11 at 12:01
1
1
$begingroup$
Welcome to PPCG! I've taken the liberty of editing in a link to TIO into your answer, so that others can easily try your code for themselves - I would have given you the link to it in this comment, but the URI was too long unfortunately! I hope you enjoy your stay :o)
$endgroup$
– Sok
Jun 11 at 11:58
$begingroup$
Welcome to PPCG! I've taken the liberty of editing in a link to TIO into your answer, so that others can easily try your code for themselves - I would have given you the link to it in this comment, but the URI was too long unfortunately! I hope you enjoy your stay :o)
$endgroup$
– Sok
Jun 11 at 11:58
1
1
$begingroup$
One small golf for you as well - the
r isn't required, which will save you 2 bytes.$endgroup$
– Sok
Jun 11 at 12:01
$begingroup$
One small golf for you as well - the
r isn't required, which will save you 2 bytes.$endgroup$
– Sok
Jun 11 at 12:01
add a comment |
$begingroup$
APL (Dyalog Unicode), 117 bytesSBCS
↑('That''s not my ',(t←T⊃⍨?5),', its ')∘,¨P[5?25],¨' is too '∘,¨V[5?19]
'That''s my ',t,'! Its',P[?25],'is so',V[?19]
Try it online!
?N generates a random index among the first N indices.
M?N generates M random indices (without replacement) among the first N indices.
, is concatenation
t←T⊃⍨… picks a random thing and calls it t for reuse in the last line.
∘,¨ concatenates the string on the left to each string on the right.
,¨ concatenates each string on the left to each string on the right.
↑ changes the list of strings into a character matrix so it prints right.
$endgroup$
add a comment |
$begingroup$
APL (Dyalog Unicode), 117 bytesSBCS
↑('That''s not my ',(t←T⊃⍨?5),', its ')∘,¨P[5?25],¨' is too '∘,¨V[5?19]
'That''s my ',t,'! Its',P[?25],'is so',V[?19]
Try it online!
?N generates a random index among the first N indices.
M?N generates M random indices (without replacement) among the first N indices.
, is concatenation
t←T⊃⍨… picks a random thing and calls it t for reuse in the last line.
∘,¨ concatenates the string on the left to each string on the right.
,¨ concatenates each string on the left to each string on the right.
↑ changes the list of strings into a character matrix so it prints right.
$endgroup$
add a comment |
$begingroup$
APL (Dyalog Unicode), 117 bytesSBCS
↑('That''s not my ',(t←T⊃⍨?5),', its ')∘,¨P[5?25],¨' is too '∘,¨V[5?19]
'That''s my ',t,'! Its',P[?25],'is so',V[?19]
Try it online!
?N generates a random index among the first N indices.
M?N generates M random indices (without replacement) among the first N indices.
, is concatenation
t←T⊃⍨… picks a random thing and calls it t for reuse in the last line.
∘,¨ concatenates the string on the left to each string on the right.
,¨ concatenates each string on the left to each string on the right.
↑ changes the list of strings into a character matrix so it prints right.
$endgroup$
APL (Dyalog Unicode), 117 bytesSBCS
↑('That''s not my ',(t←T⊃⍨?5),', its ')∘,¨P[5?25],¨' is too '∘,¨V[5?19]
'That''s my ',t,'! Its',P[?25],'is so',V[?19]
Try it online!
?N generates a random index among the first N indices.
M?N generates M random indices (without replacement) among the first N indices.
, is concatenation
t←T⊃⍨… picks a random thing and calls it t for reuse in the last line.
∘,¨ concatenates the string on the left to each string on the right.
,¨ concatenates each string on the left to each string on the right.
↑ changes the list of strings into a character matrix so it prints right.
answered Jun 11 at 9:53
AdámAdám
28k2 gold badges79 silver badges210 bronze badges
28k2 gold badges79 silver badges210 bronze badges
add a comment |
add a comment |
$begingroup$
Pyth, 88 78 76 bytes
JONj_ms.ic"That's
my
ts
is
o
."b[?d" not"kJ?d", i""! I"OG?ds"to"OH)6
Try it online!
The code presented above requires the following header:
=N["dinosaur""lamb""princess""reindeer""train")=G["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")=H["bumpy""fluffy""furry""fuzzy""glittery""glossy""hairy""red""rough""rusty""shiny""silky""slippery""soft""sparkly""squashy""thick""velvety""woolly")
There's a small issue with using the 'Header' feature in TIO with Pyth, as it looks like TIO joins the code blocks on newlines, and newlines are significant in Pyth. Here is a link to the same code using the 'Header' block, with a junk line in the output.
JONj_ms.ic"That's¶ my ¶¶ts ¶ is ¶o ¶."b[?d" not"kJ?d", i""! I"OG?d"to"sOH)6 Newlines replaced with ¶
Implicit: k="", b=newline
From header: N=things, G=parts, H=properties
JON Choose a random element from N, store in J
m 6 Map [0-6), as d, using:
?d" not"k If d is truthy (i.e. not 0), yield " not", else ""
J J (the chosen thing)
?d", i""! I" ", i" if d else "! I"
OG Random element from G
?d"to"s "to" if d else "s"
OH Random element from H
[ ) Wrap the previous 6 results in an array
c"That's¶ my ¶¶ts ¶ is ¶o ¶."b Split the template string on newlines
.i Interleave the template string elements with the previous list
s Concatenate
_ Reverse lines
j Join on newlines, implicit print
Edit: Rewrite to golf 10 bytes, previous version: J+" my "ONV5%"That's not%s, its %s is too %s."[JOGOH;%"That's%s! Its %s is so %s."[JOGOH
$endgroup$
add a comment |
$begingroup$
Pyth, 88 78 76 bytes
JONj_ms.ic"That's
my
ts
is
o
."b[?d" not"kJ?d", i""! I"OG?ds"to"OH)6
Try it online!
The code presented above requires the following header:
=N["dinosaur""lamb""princess""reindeer""train")=G["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")=H["bumpy""fluffy""furry""fuzzy""glittery""glossy""hairy""red""rough""rusty""shiny""silky""slippery""soft""sparkly""squashy""thick""velvety""woolly")
There's a small issue with using the 'Header' feature in TIO with Pyth, as it looks like TIO joins the code blocks on newlines, and newlines are significant in Pyth. Here is a link to the same code using the 'Header' block, with a junk line in the output.
JONj_ms.ic"That's¶ my ¶¶ts ¶ is ¶o ¶."b[?d" not"kJ?d", i""! I"OG?d"to"sOH)6 Newlines replaced with ¶
Implicit: k="", b=newline
From header: N=things, G=parts, H=properties
JON Choose a random element from N, store in J
m 6 Map [0-6), as d, using:
?d" not"k If d is truthy (i.e. not 0), yield " not", else ""
J J (the chosen thing)
?d", i""! I" ", i" if d else "! I"
OG Random element from G
?d"to"s "to" if d else "s"
OH Random element from H
[ ) Wrap the previous 6 results in an array
c"That's¶ my ¶¶ts ¶ is ¶o ¶."b Split the template string on newlines
.i Interleave the template string elements with the previous list
s Concatenate
_ Reverse lines
j Join on newlines, implicit print
Edit: Rewrite to golf 10 bytes, previous version: J+" my "ONV5%"That's not%s, its %s is too %s."[JOGOH;%"That's%s! Its %s is so %s."[JOGOH
$endgroup$
add a comment |
$begingroup$
Pyth, 88 78 76 bytes
JONj_ms.ic"That's
my
ts
is
o
."b[?d" not"kJ?d", i""! I"OG?ds"to"OH)6
Try it online!
The code presented above requires the following header:
=N["dinosaur""lamb""princess""reindeer""train")=G["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")=H["bumpy""fluffy""furry""fuzzy""glittery""glossy""hairy""red""rough""rusty""shiny""silky""slippery""soft""sparkly""squashy""thick""velvety""woolly")
There's a small issue with using the 'Header' feature in TIO with Pyth, as it looks like TIO joins the code blocks on newlines, and newlines are significant in Pyth. Here is a link to the same code using the 'Header' block, with a junk line in the output.
JONj_ms.ic"That's¶ my ¶¶ts ¶ is ¶o ¶."b[?d" not"kJ?d", i""! I"OG?d"to"sOH)6 Newlines replaced with ¶
Implicit: k="", b=newline
From header: N=things, G=parts, H=properties
JON Choose a random element from N, store in J
m 6 Map [0-6), as d, using:
?d" not"k If d is truthy (i.e. not 0), yield " not", else ""
J J (the chosen thing)
?d", i""! I" ", i" if d else "! I"
OG Random element from G
?d"to"s "to" if d else "s"
OH Random element from H
[ ) Wrap the previous 6 results in an array
c"That's¶ my ¶¶ts ¶ is ¶o ¶."b Split the template string on newlines
.i Interleave the template string elements with the previous list
s Concatenate
_ Reverse lines
j Join on newlines, implicit print
Edit: Rewrite to golf 10 bytes, previous version: J+" my "ONV5%"That's not%s, its %s is too %s."[JOGOH;%"That's%s! Its %s is so %s."[JOGOH
$endgroup$
Pyth, 88 78 76 bytes
JONj_ms.ic"That's
my
ts
is
o
."b[?d" not"kJ?d", i""! I"OG?ds"to"OH)6
Try it online!
The code presented above requires the following header:
=N["dinosaur""lamb""princess""reindeer""train")=G["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")=H["bumpy""fluffy""furry""fuzzy""glittery""glossy""hairy""red""rough""rusty""shiny""silky""slippery""soft""sparkly""squashy""thick""velvety""woolly")
There's a small issue with using the 'Header' feature in TIO with Pyth, as it looks like TIO joins the code blocks on newlines, and newlines are significant in Pyth. Here is a link to the same code using the 'Header' block, with a junk line in the output.
JONj_ms.ic"That's¶ my ¶¶ts ¶ is ¶o ¶."b[?d" not"kJ?d", i""! I"OG?d"to"sOH)6 Newlines replaced with ¶
Implicit: k="", b=newline
From header: N=things, G=parts, H=properties
JON Choose a random element from N, store in J
m 6 Map [0-6), as d, using:
?d" not"k If d is truthy (i.e. not 0), yield " not", else ""
J J (the chosen thing)
?d", i""! I" ", i" if d else "! I"
OG Random element from G
?d"to"s "to" if d else "s"
OH Random element from H
[ ) Wrap the previous 6 results in an array
c"That's¶ my ¶¶ts ¶ is ¶o ¶."b Split the template string on newlines
.i Interleave the template string elements with the previous list
s Concatenate
_ Reverse lines
j Join on newlines, implicit print
Edit: Rewrite to golf 10 bytes, previous version: J+" my "ONV5%"That's not%s, its %s is too %s."[JOGOH;%"That's%s! Its %s is so %s."[JOGOH
edited Jun 11 at 10:57
answered Jun 11 at 8:32
SokSok
4,51210 silver badges28 bronze badges
4,51210 silver badges28 bronze badges
add a comment |
add a comment |
$begingroup$
Perl 5.10, 127 bytes
Run with perl -M5.010 -f filename.pl.
my @t = qw(dinosaur lamb princess reindeer train);
my @r = qw(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);
my @p = qw(bumpy fluffy furry fuzzy glittery glossy hairy red rough rusty shiny
silky slippery soft sparkly squashy thick velvety woolly);
sub rrand@_$a=" my $t[r@t]";say"That's not$a, its $r[r@r] is too $p[r@p]."for(1..5);say"That's$a! Its $r[r@r] is so $p[r@p]."
$endgroup$
add a comment |
$begingroup$
Perl 5.10, 127 bytes
Run with perl -M5.010 -f filename.pl.
my @t = qw(dinosaur lamb princess reindeer train);
my @r = qw(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);
my @p = qw(bumpy fluffy furry fuzzy glittery glossy hairy red rough rusty shiny
silky slippery soft sparkly squashy thick velvety woolly);
sub rrand@_$a=" my $t[r@t]";say"That's not$a, its $r[r@r] is too $p[r@p]."for(1..5);say"That's$a! Its $r[r@r] is so $p[r@p]."
$endgroup$
add a comment |
$begingroup$
Perl 5.10, 127 bytes
Run with perl -M5.010 -f filename.pl.
my @t = qw(dinosaur lamb princess reindeer train);
my @r = qw(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);
my @p = qw(bumpy fluffy furry fuzzy glittery glossy hairy red rough rusty shiny
silky slippery soft sparkly squashy thick velvety woolly);
sub rrand@_$a=" my $t[r@t]";say"That's not$a, its $r[r@r] is too $p[r@p]."for(1..5);say"That's$a! Its $r[r@r] is so $p[r@p]."
$endgroup$
Perl 5.10, 127 bytes
Run with perl -M5.010 -f filename.pl.
my @t = qw(dinosaur lamb princess reindeer train);
my @r = qw(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);
my @p = qw(bumpy fluffy furry fuzzy glittery glossy hairy red rough rusty shiny
silky slippery soft sparkly squashy thick velvety woolly);
sub rrand@_$a=" my $t[r@t]";say"That's not$a, its $r[r@r] is too $p[r@p]."for(1..5);say"That's$a! Its $r[r@r] is so $p[r@p]."
answered Jun 11 at 19:43
Silvio MayoloSilvio Mayolo
1,4179 silver badges17 bronze badges
1,4179 silver badges17 bronze badges
add a comment |
add a comment |
$begingroup$
JavaScript ES6, 149 (+15?) bytes
a = ["dinosaur", "lamb", "princess", "reindeer", "train"]
b = ["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"]
c = ["bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly"]
// r=x=>x[parseInt(Math.random()*x.length)] 164 for better random on fast pc
r=x=>x[new Date%x.length]
s=r(a)
g=j=>console.log(`That's $j?`not my $s, its $r(b) is to`:`my $s! Its $r(b) is s`o $r(c).`)
a.map(g)
g()$endgroup$
$begingroup$
Welcome to Code Golf! Good work!
$endgroup$
– AJFaraday
Jun 11 at 12:48
1
$begingroup$
Thank's AJ! Appreciate the welcome :)
$endgroup$
– Onitz
Jun 11 at 20:12
add a comment |
$begingroup$
JavaScript ES6, 149 (+15?) bytes
a = ["dinosaur", "lamb", "princess", "reindeer", "train"]
b = ["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"]
c = ["bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly"]
// r=x=>x[parseInt(Math.random()*x.length)] 164 for better random on fast pc
r=x=>x[new Date%x.length]
s=r(a)
g=j=>console.log(`That's $j?`not my $s, its $r(b) is to`:`my $s! Its $r(b) is s`o $r(c).`)
a.map(g)
g()$endgroup$
$begingroup$
Welcome to Code Golf! Good work!
$endgroup$
– AJFaraday
Jun 11 at 12:48
1
$begingroup$
Thank's AJ! Appreciate the welcome :)
$endgroup$
– Onitz
Jun 11 at 20:12
add a comment |
$begingroup$
JavaScript ES6, 149 (+15?) bytes
a = ["dinosaur", "lamb", "princess", "reindeer", "train"]
b = ["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"]
c = ["bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly"]
// r=x=>x[parseInt(Math.random()*x.length)] 164 for better random on fast pc
r=x=>x[new Date%x.length]
s=r(a)
g=j=>console.log(`That's $j?`not my $s, its $r(b) is to`:`my $s! Its $r(b) is s`o $r(c).`)
a.map(g)
g()$endgroup$
JavaScript ES6, 149 (+15?) bytes
a = ["dinosaur", "lamb", "princess", "reindeer", "train"]
b = ["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"]
c = ["bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly"]
// r=x=>x[parseInt(Math.random()*x.length)] 164 for better random on fast pc
r=x=>x[new Date%x.length]
s=r(a)
g=j=>console.log(`That's $j?`not my $s, its $r(b) is to`:`my $s! Its $r(b) is s`o $r(c).`)
a.map(g)
g()a = ["dinosaur", "lamb", "princess", "reindeer", "train"]
b = ["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"]
c = ["bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly"]
// r=x=>x[parseInt(Math.random()*x.length)] 164 for better random on fast pc
r=x=>x[new Date%x.length]
s=r(a)
g=j=>console.log(`That's $j?`not my $s, its $r(b) is to`:`my $s! Its $r(b) is s`o $r(c).`)
a.map(g)
g()a = ["dinosaur", "lamb", "princess", "reindeer", "train"]
b = ["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"]
c = ["bumpy", "fluffy", "furry", "fuzzy", "glittery", "glossy",
"hairy", "red", "rough", "rusty", "shiny", "silky", "slippery",
"soft", "sparkly", "squashy", "thick", "velvety", "woolly"]
// r=x=>x[parseInt(Math.random()*x.length)] 164 for better random on fast pc
r=x=>x[new Date%x.length]
s=r(a)
g=j=>console.log(`That's $j?`not my $s, its $r(b) is to`:`my $s! Its $r(b) is s`o $r(c).`)
a.map(g)
g()edited Jun 11 at 21:15
answered Jun 11 at 12:31
OnitzOnitz
112 bronze badges
112 bronze badges
$begingroup$
Welcome to Code Golf! Good work!
$endgroup$
– AJFaraday
Jun 11 at 12:48
1
$begingroup$
Thank's AJ! Appreciate the welcome :)
$endgroup$
– Onitz
Jun 11 at 20:12
add a comment |
$begingroup$
Welcome to Code Golf! Good work!
$endgroup$
– AJFaraday
Jun 11 at 12:48
1
$begingroup$
Thank's AJ! Appreciate the welcome :)
$endgroup$
– Onitz
Jun 11 at 20:12
$begingroup$
Welcome to Code Golf! Good work!
$endgroup$
– AJFaraday
Jun 11 at 12:48
$begingroup$
Welcome to Code Golf! Good work!
$endgroup$
– AJFaraday
Jun 11 at 12:48
1
1
$begingroup$
Thank's AJ! Appreciate the welcome :)
$endgroup$
– Onitz
Jun 11 at 20:12
$begingroup$
Thank's AJ! Appreciate the welcome :)
$endgroup$
– Onitz
Jun 11 at 20:12
add a comment |
$begingroup$
Batch File, 434 424 + 7 bytes
Executed via cmd/q/c.
Code not counted
set a=dinosaur lamb princess reindeer train
set b=back bells body bows crown dress ears engine fan flippers funnel hoobes horns neck nose roof sash side spines spots tail teeth tiara wheels windows
set c=bumpy fluffy furry fizzy glittery glossy hair red rough rusty shiny silky slippery soft sparkly squashy thick velvety woolly
Code counted
set q=random
set m=set/ar=1+%%%q%%%%%%%
call %m%5
for /f "tokens=%r%" %%x in ("%a%")do set x=%%x
:a
set/ad+=1
call %m%25
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
call %m%19
for /f "tokens=%r%" %%z in ("%c%")do echo That's not my %x%, its %y% is too %%z.
if %d% neq 5 goto a
call %m%25
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
call %m%19
for /f "tokens=%r%" %%z in ("%c%")do echo That's my %x%! Its %y% is so %%z.
I'll go through some challenges you must face and explain/justify what I did so others can improve.
Choose a random element from an array
I did this by generating a random number between 1 and n where n is the amount of elements in that array. I then used this random number as the token to grab in each for loop (tokens=%r%). Because I did it this way, I could not nest these for loops anymore, as tokens=!r! was not working for me (with delayed expansion). This would've saved quite a few bytes as it would've removed the need to save the tokens as variables (set x=%%x).
Random number generationm is my random number generation macro. Doing it this way saves 32 bytes over doing it like set/ar=%random%%%n+1 every line. You could semi-cheat and decide that tokens y and z are to be the same element:
call %m%19
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
for /f "tokens=%r%" %%z in ("%c%")do echo That's not my %x%, its %y% is too %%z.
This would, while still retaining some randomness, exclude the final 6 elements of c. This would save a minimum of 20 bytes, but I don't think this is true to the op's requirements.
Theoretical Improvements
I spent quite a while trying to make this "pseudo-code" work, while still saving bytes:
set 1-5=echo That's not my %x%, its %y% is too %%z.
set 6=echo That's my %x%! Its %y% is so %%z.
...
set/ad+=1
for /f "tokens=%r%" %%z in ("%c%")do call %%d%%
Unfortunately the setup for this is proving to take up way too many bytes to be profitable (have to implement in < 144 bytes) but I can't shake the feeling that adding the last 4 lines of code are superfluous and janky.
$endgroup$
$begingroup$
You're not allowed to take inputs via pre-defined variables. You'll have to take it in as actual input through any of the standard IO methods
$endgroup$
– Jo King
Jun 11 at 5:51
1
$begingroup$
@JoKing From the challenge:The lists of source words are not part of your answer (in TIO they can be added to the header).
$endgroup$
– AdmBorkBork
Jun 11 at 16:28
$begingroup$
I'm unsure if it is allowed or not as I have seen it done both ways in other answers, but for those of you curious it would add 29 bytes to my answer in the form ofset a=%~1, etc.
$endgroup$
– BDM
Jun 11 at 21:31
add a comment |
$begingroup$
Batch File, 434 424 + 7 bytes
Executed via cmd/q/c.
Code not counted
set a=dinosaur lamb princess reindeer train
set b=back bells body bows crown dress ears engine fan flippers funnel hoobes horns neck nose roof sash side spines spots tail teeth tiara wheels windows
set c=bumpy fluffy furry fizzy glittery glossy hair red rough rusty shiny silky slippery soft sparkly squashy thick velvety woolly
Code counted
set q=random
set m=set/ar=1+%%%q%%%%%%%
call %m%5
for /f "tokens=%r%" %%x in ("%a%")do set x=%%x
:a
set/ad+=1
call %m%25
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
call %m%19
for /f "tokens=%r%" %%z in ("%c%")do echo That's not my %x%, its %y% is too %%z.
if %d% neq 5 goto a
call %m%25
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
call %m%19
for /f "tokens=%r%" %%z in ("%c%")do echo That's my %x%! Its %y% is so %%z.
I'll go through some challenges you must face and explain/justify what I did so others can improve.
Choose a random element from an array
I did this by generating a random number between 1 and n where n is the amount of elements in that array. I then used this random number as the token to grab in each for loop (tokens=%r%). Because I did it this way, I could not nest these for loops anymore, as tokens=!r! was not working for me (with delayed expansion). This would've saved quite a few bytes as it would've removed the need to save the tokens as variables (set x=%%x).
Random number generationm is my random number generation macro. Doing it this way saves 32 bytes over doing it like set/ar=%random%%%n+1 every line. You could semi-cheat and decide that tokens y and z are to be the same element:
call %m%19
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
for /f "tokens=%r%" %%z in ("%c%")do echo That's not my %x%, its %y% is too %%z.
This would, while still retaining some randomness, exclude the final 6 elements of c. This would save a minimum of 20 bytes, but I don't think this is true to the op's requirements.
Theoretical Improvements
I spent quite a while trying to make this "pseudo-code" work, while still saving bytes:
set 1-5=echo That's not my %x%, its %y% is too %%z.
set 6=echo That's my %x%! Its %y% is so %%z.
...
set/ad+=1
for /f "tokens=%r%" %%z in ("%c%")do call %%d%%
Unfortunately the setup for this is proving to take up way too many bytes to be profitable (have to implement in < 144 bytes) but I can't shake the feeling that adding the last 4 lines of code are superfluous and janky.
$endgroup$
$begingroup$
You're not allowed to take inputs via pre-defined variables. You'll have to take it in as actual input through any of the standard IO methods
$endgroup$
– Jo King
Jun 11 at 5:51
1
$begingroup$
@JoKing From the challenge:The lists of source words are not part of your answer (in TIO they can be added to the header).
$endgroup$
– AdmBorkBork
Jun 11 at 16:28
$begingroup$
I'm unsure if it is allowed or not as I have seen it done both ways in other answers, but for those of you curious it would add 29 bytes to my answer in the form ofset a=%~1, etc.
$endgroup$
– BDM
Jun 11 at 21:31
add a comment |
$begingroup$
Batch File, 434 424 + 7 bytes
Executed via cmd/q/c.
Code not counted
set a=dinosaur lamb princess reindeer train
set b=back bells body bows crown dress ears engine fan flippers funnel hoobes horns neck nose roof sash side spines spots tail teeth tiara wheels windows
set c=bumpy fluffy furry fizzy glittery glossy hair red rough rusty shiny silky slippery soft sparkly squashy thick velvety woolly
Code counted
set q=random
set m=set/ar=1+%%%q%%%%%%%
call %m%5
for /f "tokens=%r%" %%x in ("%a%")do set x=%%x
:a
set/ad+=1
call %m%25
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
call %m%19
for /f "tokens=%r%" %%z in ("%c%")do echo That's not my %x%, its %y% is too %%z.
if %d% neq 5 goto a
call %m%25
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
call %m%19
for /f "tokens=%r%" %%z in ("%c%")do echo That's my %x%! Its %y% is so %%z.
I'll go through some challenges you must face and explain/justify what I did so others can improve.
Choose a random element from an array
I did this by generating a random number between 1 and n where n is the amount of elements in that array. I then used this random number as the token to grab in each for loop (tokens=%r%). Because I did it this way, I could not nest these for loops anymore, as tokens=!r! was not working for me (with delayed expansion). This would've saved quite a few bytes as it would've removed the need to save the tokens as variables (set x=%%x).
Random number generationm is my random number generation macro. Doing it this way saves 32 bytes over doing it like set/ar=%random%%%n+1 every line. You could semi-cheat and decide that tokens y and z are to be the same element:
call %m%19
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
for /f "tokens=%r%" %%z in ("%c%")do echo That's not my %x%, its %y% is too %%z.
This would, while still retaining some randomness, exclude the final 6 elements of c. This would save a minimum of 20 bytes, but I don't think this is true to the op's requirements.
Theoretical Improvements
I spent quite a while trying to make this "pseudo-code" work, while still saving bytes:
set 1-5=echo That's not my %x%, its %y% is too %%z.
set 6=echo That's my %x%! Its %y% is so %%z.
...
set/ad+=1
for /f "tokens=%r%" %%z in ("%c%")do call %%d%%
Unfortunately the setup for this is proving to take up way too many bytes to be profitable (have to implement in < 144 bytes) but I can't shake the feeling that adding the last 4 lines of code are superfluous and janky.
$endgroup$
Batch File, 434 424 + 7 bytes
Executed via cmd/q/c.
Code not counted
set a=dinosaur lamb princess reindeer train
set b=back bells body bows crown dress ears engine fan flippers funnel hoobes horns neck nose roof sash side spines spots tail teeth tiara wheels windows
set c=bumpy fluffy furry fizzy glittery glossy hair red rough rusty shiny silky slippery soft sparkly squashy thick velvety woolly
Code counted
set q=random
set m=set/ar=1+%%%q%%%%%%%
call %m%5
for /f "tokens=%r%" %%x in ("%a%")do set x=%%x
:a
set/ad+=1
call %m%25
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
call %m%19
for /f "tokens=%r%" %%z in ("%c%")do echo That's not my %x%, its %y% is too %%z.
if %d% neq 5 goto a
call %m%25
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
call %m%19
for /f "tokens=%r%" %%z in ("%c%")do echo That's my %x%! Its %y% is so %%z.
I'll go through some challenges you must face and explain/justify what I did so others can improve.
Choose a random element from an array
I did this by generating a random number between 1 and n where n is the amount of elements in that array. I then used this random number as the token to grab in each for loop (tokens=%r%). Because I did it this way, I could not nest these for loops anymore, as tokens=!r! was not working for me (with delayed expansion). This would've saved quite a few bytes as it would've removed the need to save the tokens as variables (set x=%%x).
Random number generationm is my random number generation macro. Doing it this way saves 32 bytes over doing it like set/ar=%random%%%n+1 every line. You could semi-cheat and decide that tokens y and z are to be the same element:
call %m%19
for /f "tokens=%r%" %%y in ("%b%")do set y=%%y
for /f "tokens=%r%" %%z in ("%c%")do echo That's not my %x%, its %y% is too %%z.
This would, while still retaining some randomness, exclude the final 6 elements of c. This would save a minimum of 20 bytes, but I don't think this is true to the op's requirements.
Theoretical Improvements
I spent quite a while trying to make this "pseudo-code" work, while still saving bytes:
set 1-5=echo That's not my %x%, its %y% is too %%z.
set 6=echo That's my %x%! Its %y% is so %%z.
...
set/ad+=1
for /f "tokens=%r%" %%z in ("%c%")do call %%d%%
Unfortunately the setup for this is proving to take up way too many bytes to be profitable (have to implement in < 144 bytes) but I can't shake the feeling that adding the last 4 lines of code are superfluous and janky.
edited Jun 12 at 4:56
answered Jun 11 at 5:30
BDMBDM
1594 bronze badges
1594 bronze badges
$begingroup$
You're not allowed to take inputs via pre-defined variables. You'll have to take it in as actual input through any of the standard IO methods
$endgroup$
– Jo King
Jun 11 at 5:51
1
$begingroup$
@JoKing From the challenge:The lists of source words are not part of your answer (in TIO they can be added to the header).
$endgroup$
– AdmBorkBork
Jun 11 at 16:28
$begingroup$
I'm unsure if it is allowed or not as I have seen it done both ways in other answers, but for those of you curious it would add 29 bytes to my answer in the form ofset a=%~1, etc.
$endgroup$
– BDM
Jun 11 at 21:31
add a comment |
$begingroup$
You're not allowed to take inputs via pre-defined variables. You'll have to take it in as actual input through any of the standard IO methods
$endgroup$
– Jo King
Jun 11 at 5:51
1
$begingroup$
@JoKing From the challenge:The lists of source words are not part of your answer (in TIO they can be added to the header).
$endgroup$
– AdmBorkBork
Jun 11 at 16:28
$begingroup$
I'm unsure if it is allowed or not as I have seen it done both ways in other answers, but for those of you curious it would add 29 bytes to my answer in the form ofset a=%~1, etc.
$endgroup$
– BDM
Jun 11 at 21:31
$begingroup$
You're not allowed to take inputs via pre-defined variables. You'll have to take it in as actual input through any of the standard IO methods
$endgroup$
– Jo King
Jun 11 at 5:51
$begingroup$
You're not allowed to take inputs via pre-defined variables. You'll have to take it in as actual input through any of the standard IO methods
$endgroup$
– Jo King
Jun 11 at 5:51
1
1
$begingroup$
@JoKing From the challenge:
The lists of source words are not part of your answer (in TIO they can be added to the header).$endgroup$
– AdmBorkBork
Jun 11 at 16:28
$begingroup$
@JoKing From the challenge:
The lists of source words are not part of your answer (in TIO they can be added to the header).$endgroup$
– AdmBorkBork
Jun 11 at 16:28
$begingroup$
I'm unsure if it is allowed or not as I have seen it done both ways in other answers, but for those of you curious it would add 29 bytes to my answer in the form of
set a=%~1, etc.$endgroup$
– BDM
Jun 11 at 21:31
$begingroup$
I'm unsure if it is allowed or not as I have seen it done both ways in other answers, but for those of you curious it would add 29 bytes to my answer in the form of
set a=%~1, etc.$endgroup$
– BDM
Jun 11 at 21:31
add a comment |
$begingroup$
ink, 119 bytes
~a=LIST_RANDOM(a)
-(l)That'sl<6: not my a! Its LIST_RANDOM(b) is l<6:too LIST_RANDOM(c)
l<6:->l
With the lists defined as
LIST a=(dinosaur),(lamb),(princess),(reindeer),(train)
LIST b=(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)
LIST c=(bumpy),(fluffy),(furry),(fuzzy),(glittery),(glossy),(hairy),(red),(rough),(rusty),(shiny),(silky),(slippery),(soft),(sparkly),(squashy),(thick),(velvety),(woolly)
Try it online!
Though depending on what counts as a list, there are other approaches. If a list can be a function that randomly returns a list item, the following approach is only 91 bytes:
~temp t=u()
-(l)That'sl<6: not my t! Its p() is l<6:too q()
l<6:->l
(with the "lists" defined as follows)
==function u
~return "train"
==function p
~return "spines"
==function q
~return " glittery."
Try it online!
There's also the following approach.
~temp t="train"
-(l)That'sl<6: not my t! Its spines is l<6:too glittery
l<6:->l
Try it online!
This solution is 389 bytes, but if the shuffle literals (which in this scenario can't really be moved) count as list definitions and can be excluded from the byte count, this drops to 80 bytes.
$endgroup$
add a comment |
$begingroup$
ink, 119 bytes
~a=LIST_RANDOM(a)
-(l)That'sl<6: not my a! Its LIST_RANDOM(b) is l<6:too LIST_RANDOM(c)
l<6:->l
With the lists defined as
LIST a=(dinosaur),(lamb),(princess),(reindeer),(train)
LIST b=(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)
LIST c=(bumpy),(fluffy),(furry),(fuzzy),(glittery),(glossy),(hairy),(red),(rough),(rusty),(shiny),(silky),(slippery),(soft),(sparkly),(squashy),(thick),(velvety),(woolly)
Try it online!
Though depending on what counts as a list, there are other approaches. If a list can be a function that randomly returns a list item, the following approach is only 91 bytes:
~temp t=u()
-(l)That'sl<6: not my t! Its p() is l<6:too q()
l<6:->l
(with the "lists" defined as follows)
==function u
~return "train"
==function p
~return "spines"
==function q
~return " glittery."
Try it online!
There's also the following approach.
~temp t="train"
-(l)That'sl<6: not my t! Its spines is l<6:too glittery
l<6:->l
Try it online!
This solution is 389 bytes, but if the shuffle literals (which in this scenario can't really be moved) count as list definitions and can be excluded from the byte count, this drops to 80 bytes.
$endgroup$
add a comment |
$begingroup$
ink, 119 bytes
~a=LIST_RANDOM(a)
-(l)That'sl<6: not my a! Its LIST_RANDOM(b) is l<6:too LIST_RANDOM(c)
l<6:->l
With the lists defined as
LIST a=(dinosaur),(lamb),(princess),(reindeer),(train)
LIST b=(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)
LIST c=(bumpy),(fluffy),(furry),(fuzzy),(glittery),(glossy),(hairy),(red),(rough),(rusty),(shiny),(silky),(slippery),(soft),(sparkly),(squashy),(thick),(velvety),(woolly)
Try it online!
Though depending on what counts as a list, there are other approaches. If a list can be a function that randomly returns a list item, the following approach is only 91 bytes:
~temp t=u()
-(l)That'sl<6: not my t! Its p() is l<6:too q()
l<6:->l
(with the "lists" defined as follows)
==function u
~return "train"
==function p
~return "spines"
==function q
~return " glittery."
Try it online!
There's also the following approach.
~temp t="train"
-(l)That'sl<6: not my t! Its spines is l<6:too glittery
l<6:->l
Try it online!
This solution is 389 bytes, but if the shuffle literals (which in this scenario can't really be moved) count as list definitions and can be excluded from the byte count, this drops to 80 bytes.
$endgroup$
ink, 119 bytes
~a=LIST_RANDOM(a)
-(l)That'sl<6: not my a! Its LIST_RANDOM(b) is l<6:too LIST_RANDOM(c)
l<6:->l
With the lists defined as
LIST a=(dinosaur),(lamb),(princess),(reindeer),(train)
LIST b=(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)
LIST c=(bumpy),(fluffy),(furry),(fuzzy),(glittery),(glossy),(hairy),(red),(rough),(rusty),(shiny),(silky),(slippery),(soft),(sparkly),(squashy),(thick),(velvety),(woolly)
Try it online!
Though depending on what counts as a list, there are other approaches. If a list can be a function that randomly returns a list item, the following approach is only 91 bytes:
~temp t=u()
-(l)That'sl<6: not my t! Its p() is l<6:too q()
l<6:->l
(with the "lists" defined as follows)
==function u
~return "train"
==function p
~return "spines"
==function q
~return " glittery."
Try it online!
There's also the following approach.
~temp t="train"
-(l)That'sl<6: not my t! Its spines is l<6:too glittery
l<6:->l
Try it online!
This solution is 389 bytes, but if the shuffle literals (which in this scenario can't really be moved) count as list definitions and can be excluded from the byte count, this drops to 80 bytes.
answered Jun 12 at 16:27
Sara JSara J
7402 silver badges10 bronze badges
7402 silver badges10 bronze badges
add a comment |
add a comment |
$begingroup$
Bash +awk, 209 bytes
T=$(shuf $1|head -1)
join <(sed "s/.*/$Tt&/" $2) <(sed "s/.*/$Tt&/" $3)|shuf|awk 'NR<6printf "That'''s not my %s, its %s is too %s.n",$1,$2,$3NR==6printf "That'''s my %s! Its %s is so %s.n",$1,$2,$3'
Try it online!
Accepts inputs as things parts properties where each is a file with one item per line of the desired type.
This is a file-centered approach. May try an array-centered approach later to see if it can be improved.
$endgroup$
add a comment |
$begingroup$
Bash +awk, 209 bytes
T=$(shuf $1|head -1)
join <(sed "s/.*/$Tt&/" $2) <(sed "s/.*/$Tt&/" $3)|shuf|awk 'NR<6printf "That'''s not my %s, its %s is too %s.n",$1,$2,$3NR==6printf "That'''s my %s! Its %s is so %s.n",$1,$2,$3'
Try it online!
Accepts inputs as things parts properties where each is a file with one item per line of the desired type.
This is a file-centered approach. May try an array-centered approach later to see if it can be improved.
$endgroup$
add a comment |
$begingroup$
Bash +awk, 209 bytes
T=$(shuf $1|head -1)
join <(sed "s/.*/$Tt&/" $2) <(sed "s/.*/$Tt&/" $3)|shuf|awk 'NR<6printf "That'''s not my %s, its %s is too %s.n",$1,$2,$3NR==6printf "That'''s my %s! Its %s is so %s.n",$1,$2,$3'
Try it online!
Accepts inputs as things parts properties where each is a file with one item per line of the desired type.
This is a file-centered approach. May try an array-centered approach later to see if it can be improved.
$endgroup$
Bash +awk, 209 bytes
T=$(shuf $1|head -1)
join <(sed "s/.*/$Tt&/" $2) <(sed "s/.*/$Tt&/" $3)|shuf|awk 'NR<6printf "That'''s not my %s, its %s is too %s.n",$1,$2,$3NR==6printf "That'''s my %s! Its %s is so %s.n",$1,$2,$3'
Try it online!
Accepts inputs as things parts properties where each is a file with one item per line of the desired type.
This is a file-centered approach. May try an array-centered approach later to see if it can be improved.
answered Jun 10 at 17:47
LambdaBetaLambdaBeta
2,3494 silver badges19 bronze badges
2,3494 silver badges19 bronze badges
add a comment |
add a comment |
$begingroup$
Python 3, 130 bytes
Taking your requirements literally, and taking carriage returns to be one byte each:
y=0
def x():
global y
y=1-y
print(("That's not my lamb, it's "+b[0:1][y]+" is too redn")*5+"That's my lamb! Its fan is so red")
$endgroup$
$begingroup$
"It must not consistently reproduce the same text." From what I can tell, your code will always alternate between one of two options, which seems like consistent output to me. Also, this case of always using the same properties on every single line has been explicitly disallowed in the comments clarifications.
$endgroup$
– Value Ink
Jun 10 at 22:01
add a comment |
$begingroup$
Python 3, 130 bytes
Taking your requirements literally, and taking carriage returns to be one byte each:
y=0
def x():
global y
y=1-y
print(("That's not my lamb, it's "+b[0:1][y]+" is too redn")*5+"That's my lamb! Its fan is so red")
$endgroup$
$begingroup$
"It must not consistently reproduce the same text." From what I can tell, your code will always alternate between one of two options, which seems like consistent output to me. Also, this case of always using the same properties on every single line has been explicitly disallowed in the comments clarifications.
$endgroup$
– Value Ink
Jun 10 at 22:01
add a comment |
$begingroup$
Python 3, 130 bytes
Taking your requirements literally, and taking carriage returns to be one byte each:
y=0
def x():
global y
y=1-y
print(("That's not my lamb, it's "+b[0:1][y]+" is too redn")*5+"That's my lamb! Its fan is so red")
$endgroup$
Python 3, 130 bytes
Taking your requirements literally, and taking carriage returns to be one byte each:
y=0
def x():
global y
y=1-y
print(("That's not my lamb, it's "+b[0:1][y]+" is too redn")*5+"That's my lamb! Its fan is so red")
edited Jun 11 at 11:37
Sriotchilism O'Zaic
36k10 gold badges162 silver badges371 bronze badges
36k10 gold badges162 silver badges371 bronze badges
answered Jun 10 at 21:10
AcccumulationAcccumulation
971 bronze badge
971 bronze badge
$begingroup$
"It must not consistently reproduce the same text." From what I can tell, your code will always alternate between one of two options, which seems like consistent output to me. Also, this case of always using the same properties on every single line has been explicitly disallowed in the comments clarifications.
$endgroup$
– Value Ink
Jun 10 at 22:01
add a comment |
$begingroup$
"It must not consistently reproduce the same text." From what I can tell, your code will always alternate between one of two options, which seems like consistent output to me. Also, this case of always using the same properties on every single line has been explicitly disallowed in the comments clarifications.
$endgroup$
– Value Ink
Jun 10 at 22:01
$begingroup$
"It must not consistently reproduce the same text." From what I can tell, your code will always alternate between one of two options, which seems like consistent output to me. Also, this case of always using the same properties on every single line has been explicitly disallowed in the comments clarifications.
$endgroup$
– Value Ink
Jun 10 at 22:01
$begingroup$
"It must not consistently reproduce the same text." From what I can tell, your code will always alternate between one of two options, which seems like consistent output to me. Also, this case of always using the same properties on every single line has been explicitly disallowed in the comments clarifications.
$endgroup$
– Value Ink
Jun 10 at 22:01
add a comment |
If this is an answer to a challenge…
…Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.
…Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
Explanations of your answer make it more interesting to read and are very much encouraged.…Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.
More generally…
…Please make sure to answer the question and provide sufficient detail.
…Avoid asking for help, clarification or responding to other answers (use comments instead).
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f186576%2fthats-not-my-x-its-y-is-too-z%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
$begingroup$
@Shaggy The first example is the actual text of one of the books. It’s not a valid answer for this challenge. I’ve said to ignore plurals to simplify the challenge a little. That example is basically background information.
$endgroup$
– AJFaraday
Jun 9 at 15:18
1
$begingroup$
Related
$endgroup$
– FryAmTheEggman
Jun 9 at 15:20
10
$begingroup$
You state "It doesn't need to make sense.", does that extend to near-contractions? (i.e. is "That's not my bunny, its eyes are too shiny. ... That's my bunny! Its eyes are so shiny." acceptable as a possible output?) - I'd guess so, just thought I'd check.
$endgroup$
– Jonathan Allan
Jun 9 at 16:13
13
$begingroup$
Aren't "It must not consistently reproduce the same text" and kolmogorov-complexity kind of incompatible?
$endgroup$
– Joseph Sible
Jun 9 at 23:48
2
$begingroup$
@ChrisH That's my taxonomical mistake. Although both are classed as Glires, so that's something I've learned today.
$endgroup$
– AJFaraday
Jun 11 at 8:16