Este es un desafío de policías y ladrones . Responda aquí si es policía (creador de crucigramas), responda la pregunta complementaria si es un ladrón (solucionador de crucigramas). Puedes asumir ambos roles.
Policías (Puzzlers)
Su tarea es escribir un crucigrama de 10 × 10 donde, en lugar de palabras o frases, fragmentos de código son las soluciones a las pistas. Cada pista será una secuencia de caracteres no vacía, de modo que al ejecutar el fragmento de código al que hace referencia se imprimirá la secuencia en stdout.
Tu publicación debe incluir tres cosas:
- Su cuadrícula de crucigramas en blanco de 10 × 10, que se utiliza
#
para los oscuros (separadores de pistas) y_
para las luces (celdas que se deben completar).- Cada secuencia horizontal o vertical de 2 o más luces (delimitadas por las sombras o el borde de la cuadrícula) es una entrada para la que debe escribir una pista. Para su comodidad, debe numerarlos de la manera habitual (de izquierda a derecha, de arriba a abajo) reemplazando
_
al comienzo de cada entrada con un identificador de carácter único (por ejemplo, 1, 2, ..., A, B , ...) - Su cuadrícula puede tener cualquier cantidad de sombras.
- Su cuadrícula puede tener cualquier cantidad de pistas.
- Las entradas horizontales siempre se leen de izquierda a derecha y las verticales de arriba a abajo.
- Cada secuencia horizontal o vertical de 2 o más luces (delimitadas por las sombras o el borde de la cuadrícula) es una entrada para la que debe escribir una pista. Para su comodidad, debe numerarlos de la manera habitual (de izquierda a derecha, de arriba a abajo) reemplazando
- Una lista de pistas que contiene cada entrada en su crucigrama, hacia abajo y al otro lado.
- Las pistas deben contener al menos 1 y no más de 10 caracteres.
- Si sus pistas contienen espacios, asegúrese de que sean obvias cuando formatee su publicación.
- Fragmentos de código de encabezado y pie de página , cada uno de 20 caracteres o menos.
- Estos se ejecutan respectivamente antes y después de un fragmento de solución, y pueden ayudar a cambiar el nombre de incorporaciones largas y demás.
El procedimiento para garantizar que una pista coincida con su fragmento de código correspondiente es:
- Concatenar la cabecera, el fragmento, y el pie de página:
[header][snippet][footer]
. - Ejecute esto como un programa normal (independiente de las ejecuciones anteriores) y observe lo que se imprimió en stdout.
- Si esto coincide con la pista, el fragmento es una solución válida.
Para simplificar, solo puede usar ASCII imprimible (códigos hexadecimales 20 a 7E) en todo momento. Solo el encabezado y el pie de página también pueden contener pestañas y nuevas líneas.
Notas adicionales
- Para cualquier fragmento, la ejecución
[header][snippet][footer]
no debería llevar más de un minuto en una computadora moderna decente . - Debe especificar su lenguaje de programación (y versión).
- No puede utilizar ningún algoritmo de hash común.
- No puede usar bibliotecas externas.
- Todo en su código debe ser determinista, invariable en el tiempo y no necesita una conexión de red.
#
y_
puede aparecer en fragmentos (o en cualquier otro lugar).- Puede revelar algunos de los caracteres en el crucigrama como lo ha hecho COTO . Todavía cuentan como luces. Los ladrones no están obligados a usarlos, son solo buenos consejos.
Ejemplo
Un ejemplo sencillo usando Python 3. Header: p=print;t=5;
. Sin pie de página.
Rejilla sin resolver:
##########
1___2___##
_###_#####
_###_#####
_###_#####
####_#####
####_#####
###3______
####_#####
####_#####
Pistas:
ACROSS
1: 8
3: A!
DOWN
1: 7
2: 10
Solución válida:
##########
print(8)##
(###+#####
7###=#####
)###5#####
####;#####
####p#####
###p('A!')
####t#####
####)#####
Ladrones (solucionadores)
Su tarea es resolver los crucigramas publicados por la policía. Debe usar el mismo lenguaje de programación exacto que el crucigrama, pero de lo contrario, cualquier solución que coincida con todas las pistas es válida.
No puede resolver sus propios crucigramas, y solo puede intentar responder cada uno de los otros crucigramas una vez.
Recuerde publicar sus soluciones en la pregunta complementaria .
Tanteo
Si un crucigrama se resuelve dentro de las 72 horas, ya no está en ejecución. Una vez que un crucigrama ha permanecido sin resolver durante 72 horas, se considera inmune y el creador puede publicar la solución (editando su publicación y marcándola inmune).
El policía ganador es el usuario que envió el crucigrama inmune con la menor cantidad de sombras ( #
). En caso de empate, gana la presentación más votada. La solución debe publicarse para que se acepte la respuesta.
El ladrón ganador es el usuario que resuelve la mayoría de los crucigramas. El desempate es su suma de votos positivos en la pregunta complementaria .
fuente
sha512sum <<<"
pie de página:"|head -c10
(en Bash).Respuestas:
JavaScript, 0 sombras - inmunes
Aquí está la solución para todos ustedes:
Pistas
Avíseme si cree que hay algún resultado que calculé mal.
fuente
CJam, 41 oscuras - resuelto por Martin Büttner
Sin encabezado, pie de página o cuadrados reservados. Avíseme de cualquier error potencial.
La solución que tenía en mente originalmente no tenía espacios en blanco; no es la que encontró Martin Büttner.
Tablero
Pistas
A través de
Abajo
¡Buena suerte!
fuente
C - 26 oscuros, 5 reservados - resuelto por feersum
Encabezamiento
Pie de página
Pistas
fuente
MATLAB - 28 Darks
Resuelto por feersum
Tableros
Encabezamiento
Pie de página
Pistas
A través de
2
-1i
eye(3)
0
sqrt(-1)
1/25000
0
[0;0;0]
Abajo
log(1i)
100
10^16
[2,2;2,2]
512
inv(1i)
zeros(3)
Tenga en cuenta que he cambiado las cosas ligeramente en las pistas para este rompecabezas. Dado que las salidas de MATLAB son invariablemente detalladas (por ejemplo, incluso la impresión de la unidad imaginaria
1i
excede los 10 caracteres [0 + 1.0000i
]) y cambian según el formato de salida predeterminado, las pistas son todas expresiones simples cuya salida mostrada es equivalente a la de las soluciones correspondientes .En otras palabras, puede considerar una pista real
disp( CLUE )
, dondeCLUE
está la 10 caracteres o menos en las listas anteriores.Esperemos que a Calvin no le importe. No creo que esto viole el espíritu de la regla de longitud de pista, que probablemente evitará que los creadores de crucigramas inserten soluciones extremadamente difíciles de generar (es decir, palabras).
Llave
fuente
Pitón
Resuelto por feersum
Aquí hay uno para comenzar. Usé Python 2.7.8 para obtener las pistas. Buena suerte :)
He revelado el último fragmento ya que ahora no se permite el hashing. Además, la cuadrícula tiene 36 sombras (me perdí la parte de puntuación cuando lo hice).
He revelado algunos personajes más para que sea más fácil, pero las diferentes soluciones también están bien.
Cuadrícula de crucigramas:
Pistas:
Encabezamiento:
Pie de página:
fuente
p
justo después de cada fragmento?Javascript ES4 - 37 Darks, 10 Reservado
Resuelto por bazzarg
Tableros
Encabezamiento
Pie de página
Pistas
A través de
51
true
8.14159265
..."90"
0
-10
"HI"
Abajo
5
"2pac"
3072
false
Tenga en cuenta que he incluido una segunda representación del tablero marcada como "reservada" para indicar diez luces con caracteres ya completados. Estos son para ayudar al solucionador y restringir / desambiguar las posibles soluciones. No estoy seguro de si Calvin quiere contarlos como sombras o luces.
He usado las dos representaciones separadas, ya que algunos de los caracteres rellenados son números y pueden confundirse con números clave y para ordenar el tablero en general.
No hay caracteres de espacio en blanco en ninguna de las soluciones, aunque puede llenar las luces con caracteres de espacio en blanco si funcionan.
Solución original
Como resultado, la solución de bazzarg para 9 cruces está
-
en el lugar equivocado, pero se suponía que la pista estaba en10
lugar de-10
(la pista y la respuesta eran originalmente diferentes e hice el cambio apresuradamente). Por lo tanto, solo diremos que dos errores hacen un acierto en este caso. ;)fuente
Clues must contain at least 1 and no more than 10 characters.
[object Window]
(que no es válido de todos modos, como ha señalado el usuario N) parece que depende de que se ejecute en un entorno específico. Si esto es cierto, ¿no debería especificarse eso?8.141592653589793
y[object Window]
son demasiado largosPython 2, 0 darks - Inmune
Python 2 es solo por
print
el pie de página. Debería funcionar de la misma manera en Python 3 si cambia laprint
declaración.Me divertí mucho haciendo esto, y en general estoy satisfecho y un poco entusiasmado con el resultado final.
Avíseme si cree que mi pie de página es demasiado cruel (si supiera que puede abstenerse de usar un programa para forzarlo, eliminaría la crueldad). Dato curioso: las variables en el encabezado deletrean 'pan'.
Encabezamiento:
Pie de página:
Pistas:
A través de
Abajo
Solución
fuente