Crucigramas de código

22

Este es un desafío de . 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:

  1. 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.
  2. 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.
  3. 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:

  1. Concatenar la cabecera, el fragmento, y el pie de página: [header][snippet][footer].
  2. Ejecute esto como un programa normal (independiente de las ejecuciones anteriores) y observe lo que se imprimió en stdout.
  3. 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 .

Pasatiempos de Calvin
fuente
1
¿Ya estás aburrido con Code Tetris?
Feersum
3
@feersum Nadie está resolviendo eso. Espero que este sea más fácil para los ladrones.
Aficiones de Calvin
99
Encabezado: sha512sum <<<"pie de página: "|head -c10(en Bash).
jimmy23013
1
@ user23013 Yikes. Creo que prohibiré el hash.
Aficiones de Calvin
2
@Rodolvertice Aunque, de nuevo, se podría decir que se dijo que se resolvió al instante ... así que tal vez tengas razón. Pero estoy de acuerdo en que es demasiado tarde para cambiar eso (hacer un buen rompecabezas sin sombras no es exactamente trivial).
Hobbies de Calvin

Respuestas:

5

JavaScript, 0 sombras - inmunes

 __________
| 123456789A |
| B |
| C |
| D |
| E |
| F |
| G |
| H |
| I |
| J |
 ----------

Aquí está la solución para todos ustedes:

 __________
| ~ 709-51 + 90 |
| -0x33-31 y 8 |
| 8-42 ^ 07 * 70 |
| 306% 4 + 0x34 |
| 0xb1204% 51 |
| -1 + 2 + x> h-- |
| '4' * 32 >> 07 |
| Math.E> 2.7 |
| 8 / 2-1-7 * 22 |
| '6'-025036 |
 ----------
Header: var h=8,x=5;console.log(

Footer: );

Pistas

A través de
1. -671
B. 8
C. -460
D. 54
E. 33
F. falso
G. 1
H. cierto
I. -151
J. -10776

Abajo
1. NaN
2. 15
3. "1131t2"
4. 64
5. -48
6. 49
7. 6
8. cierto
9. 8
A. 315

Avíseme si cree que hay algún resultado que calculé mal.

NinjaOsoMono
fuente
3
¿Estás seguro de que no te confundiste Across and Down?
orgulloso Haskeller
3

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

#5###6#7__
#4_3____##
1##_#_#_#A
2____##_#_
_##_##9___
_##_#E#_#_
_#C#8_____
##_#_####_
##B_______
D__#_####_

Pistas

A través de

2: [[4 3]]
4: 24717
7: 32
8: E
9: "" (there is ONE trailing space after the quotes)
B: "m
D: 124

Abajo

1: [2 2 2 3]
3: 3010936384
5: 2017
6: "18"
7: ' "\"\""
8: !{}
A: -3u3
C: -1
E: Stack: ""

¡Buena suerte!

Comunidad
fuente
44
Resuelto Gracias por el desafío, ¡fue muy divertido! :)
Martin Ender
3

C - 26 oscuros, 5 reservados - resuelto por feersum

   Clue #          Reserved
+----------+     +----------+
|1_2__3_#4_|     |"      #  |
|_#_##_#5_#|     | # ## #  #|
|6___7_8___|     |      8   |
|_#_#9____#|     | # #     #|
|_#AB_#C___|     | #   #    |
|D_#E_____#|     |  #      #|
|_#F#_#_#_#|     | # # # # #|
|_#GH__#I__|     | #    #   |
|_##J_#K#_#|     | ##  # # #|
|L___#M____|     |2 * # _   |
+----------+     +----------+

Encabezamiento

z[4]={9};main(_){_=

Pie de página

;printf("%d",_);}

Pistas

ACROSS:
1. 48
4. -8
5. -2
6. 0
9. 73
A. 9
C. 0
D. 5
E. 0
G. -2
I. 0
J. 0
L. 18
M. 6247483

DOWN:
1. 45
2. 7680
3. 22
4. -97
5. 0
7. -1073741824
8. 8
B. 0
F. 42
H. 0
K. -2
es1024
fuente
¿Qué es 5 abajo?
Feersum
@feersum 5 abajo es 0 (respuesta editada)
es1024
¿Se compila con gcc y se ejecuta sin argumentos?
grc
@grc sí lo hace
es1024
2
Solución aquí
feersum
3

MATLAB - 28 Darks

Resuelto por feersum

Tableros

  CLUE #         RESERVED
 __________      __________
|12 3 4 5  |    |    [     |
|# # # # ##|    |#s# # # ##|
|6   # #7 8|    |    # #   |
|# # # # # |    |# # # # # |
|9 A       |    |6  7  y   |
|#B  # # # |    |#   # # # |
|C         |    |        g |
|# # ### # |    |# # ### # |
|# # ##D # |    |# # ##  # |
|E         |    |d         |
 ¯¯¯¯¯¯¯¯¯¯      ¯¯¯¯¯¯¯¯¯¯

Encabezamiento

g=4;o=magic(3);disp(

Pie de página

);

Pistas

A través de

  • 1 2
  • 6 6 -1i
  • 7 7 eye(3)
  • 9 9 0
  • si sqrt(-1)
  • do 1/25000
  • re 0
  • mi [0;0;0]

Abajo

  • 2 log(1i)
  • 3 100
  • 4 4 10^16
  • 5 5 [2,2;2,2]
  • 8 512
  • UNA inv(1i)
  • re 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 1iexcede 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

    KEY
 __________
|max([1 2])|
|#s#1#0#*##|
|1i^3#*#o\o|
|#n#+#1#n#(|
|6 -7+eye&1|
|#(i)#1#s# |
|.1 ^ 5*(g)|
|#)#2### #^|
|#*#/##~2# |
|diag(-o)>3|
 ¯¯¯¯¯¯¯¯¯¯ 
COTO
fuente
2
resuelto aquí
feersum
3

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:

1_234##5##         * . ## ##
_#6_______         #  e /   
_#7__##_##         # * ##6##
8________#        3   %    #
##_#_##_##        ##5# ## ##
#9________        #a   *   b
##_#_##_##        ## # ## ##
A________#        b   7  1 #
##_####_##        ## #### ##
#hash('9')        #hash('9')

Pistas:

ACROSS
1: 440380.9
6: 12328.7671
7: 72
8: 4519217.0
9: 79920L
A: 1.55826556
B: 7296021944

DOWN
1: 1211477643
2: 17353.0
3: 5.4
4: 1719.0
5: 7514613.78

Encabezamiento:

a=49481
b=97381
x=

Pie de página:

print`x`[:10]
grc
fuente
Para aclarar, ¿el pie de página está en su propia línea o está pjusto después de cada fragmento?
Aficiones de Calvin
@ Calvin'sHobbies El pie de página comienza en una nueva línea.
grc
¿Es A -ross algo especialmente diabólico? Tengo una cuadrícula que funciona para todo excepto ese.
feersum
@feersum Es una expresión matemática como las otras, pero podría ser bastante complicada. Recuerde, la salida se trunca a 10 caracteres.
grc
1
Solución
feersum
3

Javascript ES4 - 37 Darks, 10 Reservado

Resuelto por bazzarg

Tableros

   CLUE #         RESERVED
 __________      __________
|1  2 ###3#|    |     ### #|
| ## #45   |    | ## #I   4|
| ## ## # #|    |:##-## # #|
|6        #|    |         #|
| ## ## # #|    | ## ##.# #|
|7         |    |         ]|
| ## ## ###|    | ## ## ###|
|8   #9    |    | +  #   - |
| ## ## ###|    |'## ## ###|
| ##A      |    | ##   4   |
 ¯¯¯¯¯¯¯¯¯¯      ¯¯¯¯¯¯¯¯¯¯

Encabezamiento

a=3;I=9;t=

Pie de página

;console.log(t);

Pistas

A través de

  • 1 51
  • 4 4 true
  • 6 8.14159265...
  • 7 7 "90"
  • 8 0
  • 9 9 -10
  • UNA "HI"

Abajo

  • 1 5
  • 2 "2pac"
  • 3 3072
  • 5 5 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

__________ |{},51###6#| |a##+#I/a<4| |:##-##[#<#| |5+Math.PI#| |}##+##.#+#| |[I+"0"][0]| |'##p##/###| |a+-a#a=~-I| |'##c##=###| |]##"\x48I"| ¯¯¯¯¯¯¯¯¯¯

Como resultado, la solución de bazzarg para 9 cruces está -en el lugar equivocado, pero se suponía que la pista estaba en 10lugar 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. ;)

COTO
fuente
1
Interesante idea sobre los personajes reservados. No haré que cuenten como oscuros porque la gente tendría aún más incentivos para no usarlos.
Aficiones de Calvin
1
Me encontré con el mismo problema al hacer un crucigrama, pero esto no es válido. Clues must contain at least 1 and no more than 10 characters.
jimmy23013
No conozco JavaScript, pero algo como [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?
Feersum
El usuario 23013 tiene razón. 8.141592653589793y [object Window]son demasiado largos
Aficiones de Calvin
Puedo truncar la expresión para 6-través. Debería ser obvio cuál es el número (y cómo generarlo) independientemente del número de decimales. En cuanto a 9-through, la salida es de hecho específica del navegador (aunque creo que el formato que he usado es común a los cinco principales navegadores). Enmendaré la respuesta real en este caso.
COTO
1

Python 2, 0 darks - Inmune

Python 2 es solo por printel pie de página. Debería funcionar de la misma manera en Python 3 si cambia la printdeclaració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'.

 __________
|123456789A|
|B         |
|C         |
|D         |
|E         |
|F         |
|G         |
|H         |
|I         |
|J         |
 ----------

Encabezamiento:

b=7;r=3;e=6;a=.1;d=

Pie de página:

;print 2*str(d)[::3]

Pistas:

A través de

1. 74
B. 282.e2
C. 77
D. 8
E. 94
F. 247351.862e1
G. 99
H. -5312-5312
I. -32
J. 300000

Abajo

1. 61000
2. 251
3. 09333.8333
4. 7878
5. -70
6. -0045.164
7. 88
8. 61225
9. -350
A. 69971

Solución

__________ |r+111-37-r| |'2.48e+22'| |6+765-0*56| |30/7%140*2| |0xe6b/0x27| |18**+9.1-9| |047--01551| |04/-7.0131| |0-1512%989| |'30000700'| ----------

mbomb007
fuente