En la escena de apertura del Dark Knight se levanta , hay un diálogo bastante incómodo entre un agente de la CIA y el villano Bane.
Agente de la CIA: "Si me quito esa [máscara], ¿morirás?"
Bane: "Sería extremadamente doloroso ..."
Agente de la CIA: "Eres un gran tipo".
Bane: "... para ti".
No está seguro si Bane tiene la intención de decir "doloroso para ti" o "tipo grande para ti". ¡Resolvamos este problema de una vez por todas a través del golf de código!
Reto
Su tarea es escribir un programa que reordena el diálogo anterior dependiendo de un entero dado como entrada.
Las palabras de diálogo del agente de la CIA son:
If
I
pull
that
off
will
you
die?
You're
a
big
guy.
Las palabras de diálogo de Bane son:
It
would
be
extremely
painful...
for
you!
Tenga en cuenta que die?
, You’re
, painful...
y you!
son considerados como una sola palabra.
- Dado un entero n como entrada, conviértalo a binario
- Al leer los dígitos binarios de izquierda a derecha, emite la siguiente palabra del diálogo del agente de la CIA si el dígito es
1
, y la siguiente palabra del diálogo Bane si el dígito es0
. Las palabras deben estar separadas por un espacio. Cuando cambie el altavoz, agregue un salto de línea. Además, prefija cada línea de diálogo con el nombre del hablante (BANE:
oCIA:
).
Puede suponer que la entrada siempre comienza con un 1 en forma binaria, y tiene 12 unos y 7 ceros.
Ejemplo
522300
Convertido a binario:
1111111100000111100
El número comienza con 8 unos, por lo que sacamos las 8 primeras palabras del diálogo de agentes de la CIA y las prefijamos con CIA:
CIA: If I pull that off will you die?
Luego obtuvimos 5 ceros, así que obtenemos las 5 primeras palabras del diálogo de Bane:
BANE: It would be extremely painful...
Luego hay 4 unos, así que sacamos las 4 siguientes palabras de la CIA:
CIA: You’re a big guy.
Luego 2 ceros:
BANE: for you!
Resultado 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!
Más casos de prueba:
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.
Respuestas:
Pyth - 138 bytes
Debería considerar comprimir el guión de la película.
Test Suite .
fuente
JavaScript (ES6),
203201 bytesEditar: ahorró 2 bytes al tomar prestada descaradamente la
trim()
idea de la respuesta de ETHproductionsCasos de prueba
Mostrar fragmento de código
fuente
JavaScript (ES6),
209202201 bytesViejo enfoque:
Fragmento de prueba
fuente
trim()
idea. Estaba seguro de que había algo mejor queslice(1)
eso, pero no pude resolverlo.C ++ 11 (GCC),
298293bytesUna función lambda que toma un número entero y devuelve el diálogo como a
std::string
. Puedes verlo en acción aquí .Versión sin golf (con alguna explicación):
fuente
JavaScript (ES6),
252 227226 bytesUso
Notas
Esto es un juego de golf en curso, creo que todavía puedo eliminar algunos bytes, pero siéntase libre de dejar sugerencias en los comentarios.
fuente
Python 3.6, 232 bytes
Editar , equivalentemente:
fuente
Japt, 121 bytes
Contiene muchos elementos no imprimibles, por lo que sería mejor probarlo en línea .
fuente
Perl 6 , 211 bytes
fuente
C #,
398390385396389 bytesLanzamiento con número de entrada como parámetro.
Sin golf:
Regreso a 396 bytes porque no noté la regla "no hay nueva línea al principio".
fuente
s.Replace("1",c[k++]).Replace("0",b[l++])
no se reemplaza con las palabras correspondientes. Parece que C # reemplaza la cadena una vez y la golpea en algunos lugares.Rubí, 204 + 1 = 205 bytes
Requiere la
-n
bandera.fuente
PHP, 198 bytes
fuente
Perl, 205 bytes
Ponga eso en un archivo llamado 494542 y ejecútelo así:
Probado en perl v5.22
fuente
Clojure, 401 bytes
Invocación:
Sin golf
fuente