1 puntos por GN⁺ 6 시간 전 | 1 comentarios | Compartir por WhatsApp
  • JS Crossword es un rompecabezas donde el resultado de ejecutar la respuesta con eval() se convierte en la pista; por ejemplo, 7 puede resolverse como 3+4 y [object Object] como []+{}
  • El rompecabezas aprovecha funcionalidades de JavaScript poco conocidas o enrevesadas, así que se recomienda para personas con cierta familiaridad con JavaScript
  • Los caracteres permitidos están limitados a A-Za-z0-9!"()*+-./<=>[]`{}, no se pueden usar espacios, comas ni punto y coma, y distingue entre mayúsculas y minúsculas
  • Las respuestas se evalúan en un sandbox de eval(), y aunque se permite usar DevTools, MDN y búsquedas, no se recomienda resolverlo con IA
  • El progreso se guarda localmente, y al completar todo el tablero se puede ver un final y usar una función de repetición; no se recopilan estadísticas

Reglas del rompecabezas

  • JS Crossword es un rompecabezas donde el resultado de ejecutar la respuesta del crucigrama con eval() se convierte en la pista
  • La pista 7 puede resolverse como 3+4, y la pista [object Object] como []+{}
  • Como usa funcionalidades de JavaScript poco conocidas o algo enrevesadas, se recomienda para personas con cierta familiaridad con JavaScript
  • Los caracteres que se pueden usar están limitados a A-Za-z0-9!"()*+-./<=>[]`{}, y no se pueden usar espacios, comas ni punto y coma
  • El crucigrama distingue entre mayúsculas y minúsculas, y las respuestas finales solo están compuestas por palabras en inglés que coinciden con A-Za-z
  • Las respuestas se evalúan dentro de un sandbox de eval(), y se pueden probar directamente en el playground al pie de la página
  • Se permite usar recursos externos como DevTools, MDN y búsquedas, pero no se recomienda resolverlo con IA
  • La dirección de entrada puede cambiarse haciendo clic en una casilla o presionando ctrl, y el progreso se guarda localmente
  • Los colores distinguen la posibilidad de que una respuesta sea correcta, caracteres incorrectos, errores y casillas prellenadas

Finalización y compartir

  • La respuesta final se muestra como horses gonna answer
  • Al completar todo el tablero aparece un final aparte, con una advertencia de que incluye audio y efectos visuales intensos
  • Después de completarlo, si recargas el navegador y ejecutas replayCapture() en la consola de JavaScript, puedes ver una repetición de la partida
  • Se aclara que todos los datos de la repetición se guardan solo de forma local, y que no se recopilan datos ni estadísticas relacionados con el crucigrama
  • La música del final es revolea - its giving music
  • La creadora es Lyra Rebane y Jorian Woltjer participó en las pruebas de juego
  • Enlaces para compartir opiniones: fedi, bsky, twitter

1 comentarios

 
GN⁺ 6 시간 전
Comentarios en Lobste.rs
  • Veo unas líneas gruesas y me pregunto qué significan. ¿Será para dividir cadenas? Nunca había visto eso en un crucigrama.
    Edit: viendo que se resaltan las casillas relacionadas, parece que definitivamente es eso. Ahora parece obvio, pero en la primera pista confundía bastante.

    • Sí, son líneas que separan la respuesta. En los crucigramas es bastante estándar y, al menos en los rompecabezas que hacen en mi país, es común.
  • Me decepcionó un poco que la solución no fuera única. Viéndolo con la notación tr:nth-child,td:nth-child, las casillas individuales en 2,6, 10,18, 13,14, 16,16, 18,8 tienen muy pocas restricciones.
    También hay al menos una, y probablemente más, pistas que admiten varios enfoques. Parece que 38-down estaba pensada para usar this, pero otra persona que publicó una captura de su solución usó /h/s, y eso también funciona.
    Al editar en una casilla cruzada, a veces la validación de respuestas fallaba o se comportaba raro: una se corregía y la otra se rompía. Tenía que volver a escribir el carácter para que apareciera en verde.
    Si vuelvo a jugar tras recargar la página, reconoce mi 38-down como resuelta, pero la reproducción final no. Más grave aún, 9-down era la última sin resolver y yo había resuelto 22-across de una forma incompatible con ella; al cambiar la casilla cruzada para arreglar 9-down, 22-across se rompió, pero aun así apareció “whoaw!!” y lo marcó como completado. Si recargo y vuelvo a jugar, sí reconoce correctamente que todavía no está terminado.
    Unas cuantas veces tuve que buscar en la biblioteca estándar de JavaScript para encontrar nombres que hicieran match con los glob. Si no hubiera tenido una copia local de MDN para hacer algo como find -name "??x?x.html", no sé cómo lo habría resuelto.
    29-down todavía se siente como hacer trampa. Aun así, fue muy divertido y me consumió buena parte de la mañana 🙂

    • ¡Gracias por jugar ^^!
      Que la solución no sea única fue intencional. Lo mismo con permitir varias formas de llegar a la respuesta. Como es un reto con espíritu hacker, si se te ocurre otra solución ingeniosa, me parece bien dejarla pasar.
      Me da curiosidad si hay una forma de reproducir de manera confiable el fallo en la validación de casillas cruzadas.
      Buen hallazgo con el problema de las respuestas cruzadas. Probablemente sea una divertida condición de carrera asíncrona de JavaScript, y aun así parece bastante fácil de corregir.
  • ¡Estuvo realmente excelente! Me tomó unas horas y tuve que hacer varias pausas en el camino para pensarlo bien, pero al final lo resolví. Me encantan este tipo de experiencias y también me gustan mucho los crucigramas de expresiones regulares. Gracias por hacerlo y compartirlo.

  • Solo pude resolver como la mitad, pero en el proceso aprendí varias cosas. En JavaScript hay tanto basura heredada como casos límite extraños.
    Las pistas largas eran tan abiertas que me costaba incluso empezar. Las que más me gustaron fueron 1-down y 33-down.
    De cualquier forma, es una obra impresionante.

  • Dios mío, esto está dificilísimo :)

  • Los sitios que secuestran o interfieren con el botón Atrás del navegador deberían marcarse como spam.

    • Edit: ya quedó arreglado. Resulta que algunos navegadores tratan la asignación de iframe.src como una navegación.