Este es el hilo conductor de la policía. Para el hilo de los ladrones, ve aquí .
Introducción
Para este desafío de policías / ladrones, los policías escribirán programas de producción y los entrelazarán. El trabajo del ladrón es separar los programas de la policía para producir los resultados deseados.
Reglas de policía
Los policías pueden usar hasta 256 bytes en total para escribir entre 2 y 8 programas (inclusive), todos los cuales deben producir alguna salida. Todos los programas escritos deben estar en el mismo idioma. Los policías "entrelazarán" sus programas para dificultar que los ladrones descubran cuáles son los programas.
Ahora para una descripción de entretejido. Considere las cadenas que representan los diferentes programas. El proceso de entrelazado es la extracción repetida del primer carácter de cualquiera de los programas y la concatenación al final de una nueva cadena hasta que no queden caracteres en ninguno de los programas. Por ejemplo, si hay dos programas lion
y TIGER
, una posible interrelación es TIliGoEnR
. Sin embargo, los programas no se pueden mezclar de ninguna manera, por RoITEnlGi
lo que no es aceptable.
Cabe señalar que cuando los caracteres de todos los programas menos uno se eliminan de los resultados de un entrelazado, el programa restante se mostrará intacto. Eliminando las letras TIGER
de los TIliGoEnR
resultados en lion
.
Todos los programas y salidas de la policía deben contener solo caracteres ASCII imprimibles (20-7E) y líneas nuevas. Los programas no deben contener errores y deben ejecutarse en 10 segundos en una máquina razonable. Para cualquier envío, debe haber un intérprete gratuito del idioma en alguna parte. No está permitido agregar comentarios a los envíos, como lo están los hash y otras formas de criptografía. Los programas en blanco no están permitidos (lo siento atascado ).
El policía publicará el código entretejido, el idioma, el número de diferentes programas utilizados y la salida de cada programa. Muchas gracias a Martin por escribir este script de CJam para entrelazar automáticamente sus programas.
Los programas se consideran seguros después de que haya transcurrido una semana desde el momento de la publicación. En ese punto, los policías deben publicar los programas individuales para recibir puntos.
Puntuación
Hay dos componentes que se agregan al calificar un envío seguro.
- 256 dividido por la cantidad 2 elevada a la potencia del número de programas utilizados.
- Ronda el número de bytes en el entretejiendo hasta que la potencia cercana a 2 y se divide en 256.
Por ejemplo, si la entrada TIliGoEnR
(9 bytes) fuera segura, recibiría 256/2 ^ 2 + 256/16 = 80 puntos.
Cuando se rompe la presentación de un policía, el policía pierde 16 puntos. El policía debe indicar que su envío ha sido descifrado.
El ganador del desafío de la policía será la persona con más puntos después de un período de tiempo suficiente para que las personas participen.
Tabla de clasificación
Este es un trabajo en progreso que fue adaptado por intrepidcoder a partir de esta pregunta .
Para asegurarse de que su respuesta se muestre, comience con un título, usando la plantilla exacta de Markdown:
# Language Name, N programs, M bytes; Score ###/### (if safe/cracked)
Cualquier cosa después de un punto y coma se ignorará, por lo que puede poner su puntaje allí.
Si su envío es seguro, coloque un encabezado como este:
# Language Name, safe, N programs, M bytes; Score ###
Si está roto, ponga un encabezado como este:
# Language Name, [cracked](link-to-crack), N programs, M bytes; Score -16
|||
ejemplo) y luego reemplazarlo N
en el código con una cadena que contenga su delimitador, por ejemplo "|||"
. (@Eridan no dude en incluir esto en el desafío.)