Inspirado por este comentario ...
¡Gracias a los usuarios Step Hen , Wheat-Wizard y Dennis por ayudarme a solidificar la especificación de este desafío antes de publicarlo!
Este es el hilo del ladrón! Para el hilo de los policías, vaya aquí
En este desafío , tiene la tarea de ejecutar un código que haga que su lenguaje ya no satisfaga nuestros criterios de ser un lenguaje de programación. En ese desafío, eso significa hacer que el idioma ya no pueda ...
Tomar entrada y salida numérica
Suma dos números juntos
Prueba si cierto número es primo o no.
Esta es una de policías y ladrones desafío, donde hay dos retos diferentes con dos objetivos diferentes: Los policías se trate de escribir un código que hace que el lenguaje sobre todo inservible, y los ladrones tratarán de encontrar la solución oculto que permite a la policía para recuperar su lenguaje.
Los policías escribirán dos fragmentos de código:
Uno que hace que su lenguaje sea prácticamente inutilizable, por ejemplo, eliminando las funciones integradas para tomar entradas / salidas y operaciones numéricas. Este código no puede bloquearse o salir. Debería ser posible agregar código al final de este fragmento, y ese código será evaluado . Y
Un fragmento de código que toma dos números como entrada, los agrega y genera su suma. Este fragmento debe funcionar correctamente incluso después de ejecutar el primer fragmento. Cuando los dos fragmentos se combinan, deben formar un programa completo que agregue dos números o definir una función que agregue dos números. Este fragmento probablemente dependerá de un comportamiento oscuro y será difícil de encontrar.
Los policías también elegirán cualquier método estándar de entrada y salida . Sin embargo, deben revelar exactamente qué formato (entrada y salida) están utilizando. Para descifrar su respuesta, debe seguir el mismo formato de entrada / salida, o su crack no cuenta.
La respuesta de un policía siempre revelará
El primer fragmento (obviamente no el segundo).
Idioma (incluida la versión menor, ya que la mayoría de las presentaciones probablemente dependerán de casos extraños)
Formato IO, incluso si es una función o un programa completo. Los ladrones deben usar el mismo formato para ser un crack válido.
Cualquier caso marginal extraño requerido para que su respuesta funcione. Por ejemplo, solo se ejecuta en Linux , o requiere una conexión a Internet .
Como ladrón, debes mirar una de las presentaciones de la policía e intentar descifrarla. Puede descifrarlo escribiendo cualquier fragmento válido que pueda funcionar como fragmento 2 (sumando dos números juntos después de que el idioma quede prácticamente inutilizable). Este no tiene que ser el mismo fragmento que el policía escribió originalmente. Una vez que tenga una respuesta descifrada, publique su código como respuesta en este hilo y publique un enlace a su respuesta como un comentario en la respuesta del policía. Luego, esa publicación se editará para indicar que se ha descifrado.
Aquí hay un ejemplo. Para el primer fragmento, es posible que vea el siguiente programa de Python 3 como respuesta de la policía:
Python 3
print=None
Toma entrada de STDIN y salida a STDOUT
Un segundo fragmento válido podría ser
import sys
a,b=int(input()),int(input())
sys.stdout.write(a+b)
Esto es válido porque tomará dos números como entrada y generará su suma incluso si une los dos fragmentos, p. Ej.
print=None
import sys
a,b=int(input()),int(input())
sys.stdout.write(a+b)
Esta es una grieta válida para su respuesta.
Si la respuesta de un policía permanece sin descifrar durante una semana entera, puede editar en su segundo fragmento e indicar que su respuesta ahora es segura . Una vez que se edita para que sea seguro, ya no puede intentar descifrarlo. Si no lo editan como seguro, puede continuar intentando descifrarlo hasta que lo hagan.
El ganador del hilo del ladrón es el usuario que ha obtenido la mayor cantidad de respuestas, siendo el desempate el momento en que llegaron a N grietas. (por lo tanto, si dos usuarios diferentes tienen 5 grietas, por ejemplo, el usuario que publicó su quinta grieta primero es el ganador) Después de que haya pasado el tiempo suficiente, aceptaré la respuesta del ganador con la mayor cantidad de votos.
¡Que te diviertas!
Aclaraciones de reglas
El primer fragmento debe ejecutarse correctamente sin tomar ninguna entrada . Puede generar lo que desee, y esta salida será ignorada. Siempre que el fragmento esté hecho, el segundo fragmento se ejecutará correctamente.
El segundo fragmento debe ejecutarse para que su respuesta sea válida. Esto significa una respuesta como
import sys sys.exit()
no es válido porque no rompe el idioma. Simplemente se cierra.
Después de estar seguro, su puntaje es el recuento de bytes de ambos fragmentos .
Esto se remonta a Por favor, revele los casos extremos extraños necesarios para que su respuesta funcione ... Su envío debe contener suficiente información antes de ser revelado para ser reproducible después de ser revelado. Esto significa que si su respuesta se vuelve segura y luego edita en: Aquí está mi respuesta. Ah, por cierto, esto solo funciona si lo ejecutas en Solaris, ¡bromeas! su respuesta no es válida y se eliminará y no se considerará elegible para ganar.
Se permite que el segundo fragmento se bloquee después de generar la suma. Siempre que la salida sea correcta (por ejemplo, si elige enviar a STDERR, y luego obtiene un montón de información de bloqueo, esto no es válido)
Tabla de clasificación
Aquí hay una lista de cada usuario con al menos un crack, ordenado por puntaje y luego por nombre (alfabético). Si envía un crack, actualice su puntaje en consecuencia.
#User #Score
Ilmari Karonen 8
Dennis 5
Olivier Grégoire 4
Sisyphus 3
Veedrac 3
Arnold Palmer 2
Bruce Forte 2
DJMcMayhem 2
Dom Hastings 2
ppperry 2
1bluston 1
2012rcampion 1
Ben 1
BlackCap 1
Christian Sievers 1
Cody Gray 1
HyperNeutrino 1
Joshua 1
Kaz 1
Mark 1
Mayube 1
Xnor 1
zbw 1
SecurityManager
que estuviera dentro del alcance ... Sin embargo, también puedes leerSystem.in
en este punto, porque aún no está cerrado.