Lors de la scène d'ouverture de The Dark Knight se lève , il y a un dialogue plutôt maladroit entre un agent de la CIA et le méchant Bane.
Agent de la CIA: "Si je retire ce [masque], mourrez-vous?"
Bane: "Ce serait extrêmement douloureux ..."
Agent de la CIA: "Vous êtes un grand gars."
Bane: "... pour toi."
On ne sait pas si Bane a l'intention de dire «douloureux pour vous» ou «grand type pour vous». Réglons ce problème une fois pour toutes grâce au golf à code!
Défi
Votre tâche consiste à écrire un programme qui réorganise la boîte de dialogue ci-dessus en fonction d'un entier donné en entrée.
Les mots de dialogue avec les agents de la CIA sont:
If
I
pull
that
off
will
you
die?
You're
a
big
guy.
Les mots de dialogue de Bane sont:
It
would
be
extremely
painful...
for
you!
S'il vous plaît noter que die?
, You’re
, painful...
et you!
sont considérés comme des mots simples.
- Étant donné un entier n en entrée, convertissez-le en binaire
- En lisant les chiffres binaires de gauche à droite, sortez le mot suivant du dialogue de l'agent CIA si le chiffre est
1
, et le mot suivant du dialogue Bane si le chiffre est0
. Les mots doivent être séparés par un espace. Lorsque le haut-parleur change, ajoutez un saut de ligne. De plus, préfixez chaque ligne de dialogue avec le nom du locuteur (BANE:
ouCIA:
).
Vous pouvez supposer que l'entrée commence toujours par un 1 sous forme binaire et comporte 12 uns et 7 zéros.
Exemple
522300
Converti en binaire:
1111111100000111100
Le nombre commence par 8 uns, nous sortons donc les 8 premiers mots du dialogue d'agent de la CIA et les préfixons avec la CIA:
CIA: If I pull that off will you die?
Ensuite, nous avons obtenu 5 zéros, nous obtenons donc les 5 premiers mots du dialogue de Bane:
BANE: It would be extremely painful...
Ensuite, il y en a 4, donc nous sortons les 4 prochains mots CIA:
CIA: You’re a big guy.
Puis 2 zéros:
BANE: for you!
Résultat final:
CIA: If I pull that off will you die?
BANE: It would be extremely painful...
CIA: You’re a big guy.
BANE: for you!
Plus de cas de test:
494542
CIA: If I pull that
BANE: It would be
CIA: off
BANE: extremely
CIA: will you die? You're
BANE: painful... for
CIA: a big guy.
BANE: you!
326711
CIA: If
BANE: It would
CIA: I pull that off will you
BANE: be extremely painful... for
CIA: die? You're
BANE: you!
CIA: a big guy.
Réponses:
Pyth - 138 octets
Je devrais regarder dans la compression du script du film.
Suite de test .
la source
JavaScript (ES6),
203201 octetsEdit: économisé 2 octets en empruntant sans vergogne l'
trim()
idée de la réponse ETHproductionsCas de test
Afficher l'extrait de code
la source
JavaScript (ES6),
209202201 octetsAncienne approche:
Extrait de test
la source
trim()
idée. J'étais sûr qu'il y avait quelque chose de mieux queslice(1)
mais je ne pouvais pas le comprendre.C ++ 11 (GCC),
298293 octetsUne fonction lambda qui prend un entier et renvoie le dialogue sous la forme d'un
std::string
. Vous pouvez le voir en action ici .Version non golfée (avec quelques explications):
la source
JavaScript (ES6),
252 227226 octetsUsage
Remarques
C'est le golf en cours, je pense que je peux encore raser certains octets, mais n'hésitez pas à laisser des suggestions dans les commentaires.
la source
Python 3.6, 232 octets
Modifier , de manière équivalente:
la source
Japt, 121 octets
Contient de nombreux éléments non imprimables, vous feriez donc mieux de le tester en ligne .
la source
Perl 6 , 211 octets
la source
C #,
398390385396389 octetsLancer avec le numéro d'entrée comme paramètre.
Ungolfed:
Retour à 396 octets car je n'ai pas remarqué de règle "pas de nouvelle ligne au début".
la source
s.Replace("1",c[k++]).Replace("0",b[l++])
ne remplace pas par des mots correspondants. Il semble que C # remplace la chaîne une fois et la claque par endroits.Ruby, 204 + 1 = 205 octets
Nécessite le
-n
drapeau.la source
PHP, 198 octets
la source
Perl, 205 octets
Mettez cela dans un fichier nommé 494542 et exécutez comme ceci:
Testé sur perl v5.22
la source
Clojure, 401 octets
Invocation:
Ungolfed
la source