introduction
La chanson d'enfance Eeny, meeny, miny, moe était souvent utilisée pour sélectionner qui était "it" lors de la lecture du tag. Tout le monde se tenait en cercle et désignait une personne choisie au hasard. Ils chantaient:
Eeny, meeny, miny, moe,
Attrapez un tigre par l'orteil.
S'il hurle, laissez-le partir,
Eeny, meeny, miny, moe.
En chantant chaque mot, ils pointèrent la personne suivante dans le cercle. La personne désignée lorsque le "moe" final a été chanté serait "it". Les enfants se levaient immédiatement et se dispersaient.
Objectif
Implémentez le programme le plus court en octets qui prend une entrée, le nombre d'enfants et répertorie les mots qui ont été chantés lorsqu'ils étaient pointés du doigt.
Le gagnant sera sélectionné dans une semaine.
Contribution
De STDIN, un seul entier positif, le nombre d'enfants. Cela peut être plus que le nombre de mots de la chanson.
Production
Écrit dans STDOUT une liste où chaque ligne représente un enfant et contient le mot chanté alors qu'il était pointé du doigt. S'il y a trop d'enfants, les lignes vides peuvent être omises.
Exigences
- Commencez toujours par le premier enfant.
- Affichez les mots sans ponctuation.
- Le "moe" final doit être souligné comme "MOE!" y compris la ponctuation.
Exemple
Contribution
3
Production
Eeny moe tiger toe hollers go miny
meeny Catch by If let Eeny MOE!
miny a the he him meeny
Contribution
7
Production
Eeny by him
meeny the go
miny toe Eeny
moe If meeny
Catch he miny
a hollers MOE!
tiger let
Contribution
1
Production
Eeny meeny miny moe Catch a tiger by the toe If he hollers let him go Eeny meeny miny MOE!
Contribution
21
Production
Eeny
meeny
miny
moe
Catch
a
tiger
by
the
toe
If
he
hollers
let
him
go
Eeny
meeny
miny
MOE!
la source
Réponses:
TeaScript , 82 octets
Décompresser, fragmenter, transposer, joindre, sortir.
Explication
Essayez-le en ligne
81 octets non concurrents
Le
α
n'était pas enchaîné.
donc j'ai dû corriger un bugla source
Pyth,
1038984 caractères18 octets enregistrés avec compression de chaîne, grâce à @Dennis et @FryAmTheEggman Un
autre octet enregistré grâce à @isaacg
Attention: il y a beaucoup de non imprimables dans le code; utilisez les liens ci-dessous pour l'essayer.
Essayez-le en ligne | Suite de tests
Pourrait probablement être joué au golf. Suggestions bienvenues!
Comment ça fonctionne
la source
Eeny meeny miny
devrait en quelque sorte économiser quelques octets. De plus, Pyth a deux fonctions intégrées pour la (dé) compression (.Z
et."
).."
économise 14 octets!FNQ
==VQ
, au fait.Gelée, 84 octets
Essayez-le en ligne!
la source
JavaScript (ES6), 167 octets
Explication
la source
l=Array(n).fill``
fonctionne pas pour une raison quelconque?Haskell,
160157 octetsAjouter
"Eeny meeny miny "
les autres parties ("moe Catch ..."
et"MOE!"
), concaténer les deux chaînes, diviser en mots, prendre des morceaux de la taille requise, transposer et concaténer à nouveau en une seule chaîne.@Mauris a trouvé 3 octets en factorisant la sous-chaîne commune "Eeny meeny miny" et en la rendant sans
f
point.la source
s="Eeny meeny miny "
enregistre quelques octets.f=unlines.map unwords.transpose.(`chunksOf`(["moe Catch a tiger by the toe If he hollers let him go","MOE!"]>>=words.("Eeny meeny miny "++)))
f
complètement sans point, nous pouvons même omettre le nom.Python 2,
154147 octetsEDIT: Merci Joe Willis!
Cela utilise l'astuce qui [0 :: n] affiche le nième élément de la liste.
Essayez-le ici
la source
::
opérateur? C'est comme pour en boucle?Rubis, 160 octets
Toutes mes tentatives de "compression" de la chaîne viennent de l'allonger.
En train d'essayer...la source
JavaScript (ES6), 189 octets:
Explication:
la source
I=>(b=Array(I--).fill``,c=0,"Eeny meeny miny moe Catch a tiger by the toe If he hollers let him go Eeny meeny miny MOE!".split` `.forEach(v=>(b[c]+=v+' ',c+=c>I-1?-c:1)),b)
qui fait 172 octets de long. Il renvoie chaque ligne en tant qu'élément du tableau. Je pense que c'est acceptable..map()
au lieu de.forEach()
, vous pouvez enregistrer 3 octets, ce qui réduit à 169 octets. Avec un peu plus de violon, cela pourrait en fait être tweetable!STDIN
etSTDOUT
donc je pense que cela limite les réponses JavaScriptprompt
etalert
malheureusement.alert(b.join`<newline>`)
à la fin. Mais les dégâts peuvent toujours être réduits avec.map()
, au lieu de.forEach()
.Python 3,
279278272173 octets(merci à Mathias Ettinger qui m'a littéralement sauvé plus de 100 octets! )
Si quelqu'un a des conseils ou des suggestions, je les apprécierais vraiment. Merci!
la source
int(i)
devrait remplacer3
, mais il y a d'autres erreurs à corriger après cela.%
. Il est idéal pour les compteurs cycliques..split()
se sépareront sur les blancs (espace, nouvelles lignes, tabulations) 2)range(0, x)
est mieux écrit commerange(x)
3) jetez un oeil à la notation des tranches:w[0::3]
renverra une liste de tous les trois mots dedansw
.Mathematica, 154 octets
Utilise la méthode split-chunk-transpose-join-output de la plupart des autres réponses.
la source
MATLAB, 167 octets / caractères:
Explication:
Je ne gagnerai aucun prix pour la durée de celui-ci, mais c'était amusant. :-)
la source
Japt,
908786 octetsBeaucoup d'imprimables. Essayez-le en ligne!
Comment ça fonctionne
J'ai essayé de compresser la chaîne avec différents délimiteurs. La seule chose plus efficace que les espaces serait une lettre minuscule, mais la plupart d'entre elles sont déjà utilisées et ne peuvent donc pas être utilisées pour diviser la chaîne. Voici la quantité de compression obtenue avec les autres:
Actuellement j'utilise
d
. Il peut être possible d'enregistrer un octet avecs
, en remplaçant une autre lettrehollers
.la source