- JS Crossword é um quebra-cabeça em que o resultado de executar a resposta com
eval()vira a dica; por exemplo,7pode ser resolvido com3+4e[object Object]com[]+{} - O puzzle usa recursos de JavaScript pouco conhecidos ou difíceis de entender, sendo recomendado para quem já tem alguma familiaridade com JavaScript
- Os caracteres permitidos são restritos a
A-Za-z0-9!"()*+-./<=>[]`{}, não sendo possível usar espaços, vírgulas ou ponto e vírgula, e há distinção entre maiúsculas e minúsculas - As respostas são avaliadas em um sandbox de
eval(); DevTools, MDN e busca são permitidos, mas não é recomendado resolver com IA - O progresso fica salvo localmente e, ao completar todo o tabuleiro, é possível ver um final e usar o recurso de replay; nenhuma estatística é coletada
Regras do puzzle
- JS Crossword é um quebra-cabeça em que o resultado de executar a resposta do caça-palavras com
eval()vira a dica - A dica
7pode ser resolvida com3+4, e a dica[object Object]com[]+{} - Como usa recursos de JavaScript pouco conhecidos ou um tanto obscuros, é recomendado para quem já tem alguma familiaridade com JavaScript
- Os caracteres que podem ser usados são limitados a
A-Za-z0-9!"()*+-./<=>[]`{}, e não é possível usar espaços, vírgulas ou ponto e vírgula - O caça-palavras diferencia maiúsculas de minúsculas, e as respostas finais são compostas apenas por palavras em inglês, correspondendo a
A-Za-z - As respostas são avaliadas dentro de um sandbox de
eval(), e podem ser testadas diretamente no playground na parte inferior da página - Recursos externos como DevTools, MDN e busca são permitidos, mas não é recomendado resolver com IA
- A direção de entrada pode ser alterada clicando na célula ou pressionando
ctrl, e o progresso fica salvo localmente - As cores distinguem possibilidade de resposta correta, caractere incorreto, erro e células já preenchidas
Conclusão e compartilhamento
- A resposta final é exibida como
horses gonna answer - Ao completar todo o tabuleiro, aparece um final separado, com aviso de que inclui áudio e efeitos visuais intensos
- Depois de concluir, ao recarregar o navegador e executar
replayCapture()no console do JavaScript, é possível ver o replay da partida - Os dados de replay ficam todos armazenados apenas localmente, e é informado que nenhum dado ou estatística do caça-palavras é coletado
- A música de encerramento é revolea - its giving music
- A criadora é Lyra Rebane, com playtest de Jorian Woltjer
- Links para compartilhar opiniões: fedi, bsky, twitter
1 comentários
Opiniões no Lobste.rs
Tem umas linhas grossas visíveis, e fiquei curioso sobre o que significavam. É para dividir a string? Nunca tinha visto isso em palavras cruzadas
Edit: vendo que as casas relacionadas ficam destacadas, parece que é isso mesmo. Agora parece óbvio, mas na primeira pista foi bem confuso
Fiquei um pouco decepcionado com o fato de que a solução não é única. Pela notação
tr:nth-child,td:nth-child, as casas isoladas em2,6,10,18,13,14,16,16,18,8têm restrições insuficientesTambém há pelo menos uma, talvez mais, abordagens diferentes. 38-down parece ter sido pensado para usar
this, mas outra pessoa que postou uma captura da solução usou/h/s, e isso também funcionaAo editar nas casas de cruzamento, a validação da resposta às vezes falhava ou se comportava de forma estranha, do tipo uma ficava certa e a outra quebrava. Eu precisava digitar o caractere de novo para aparecer em verde
Ao rejogar depois de recarregar a página, meu 38-down é reconhecido como resolvido, mas na animação final não é. Mais grave: 9-down era a última não resolvida, e eu tinha resolvido 22-across de um jeito incompatível com ela; ao mudar a casa cruzada para corrigir 9-down, 22-across quebrou, mas mesmo assim apareceu “whoaw!!” e foi marcado como concluído. Ao recarregar e jogar de novo, reconhece corretamente que ainda não terminou
Em alguns momentos tive que pesquisar a biblioteca padrão do JavaScript para encontrar um nome que combinasse com o glob. Se eu não tivesse uma cópia local do MDN para fazer algo como
find -name "??x?x.html", não sei como teria resolvido29-down ainda parece trapaça. Mesmo assim, foi muito divertido e tomou uma boa parte da minha manhã 🙂
As soluções não únicas foram intencionais. O mesmo vale para resolver por vários caminhos. Como é um desafio com espírito hacker, acho certo permitir se você conseguir pensar em outra solução inteligente
Fico curioso se existe uma forma de reproduzir de maneira consistente essa falha na validação das casas cruzadas
Você identificou bem o problema das respostas cruzadas. Provavelmente é uma divertida condição de corrida assíncrona em JavaScript, e ainda assim deve ser bem fácil de corrigir
Ficou realmente excelente! Levou algumas horas, e no meio do caminho precisei parar algumas vezes para pensar melhor, mas no fim consegui resolver. Gosto desse tipo de experiência, e também gosto muito de palavras cruzadas de regex. Obrigado por criar e compartilhar isso
Só consegui resolver mais ou menos a metade, mas aprendi algumas coisas no processo. O JavaScript tem tanto lixo legado quanto casos de borda esquisitos
As pistas longas eram abertas demais, então era difícil até começar. As que eu gostei foram 1-down e 33-down
De qualquer forma, é um trabalho impressionante
Meu Deus, isso é difícil demais :)
Sites que sequestram ou atrapalham o botão Voltar do navegador deveriam ser marcados como spam
iframe.srccomo navegação