Este é um desafio de policiais e ladrões . Responda aqui se você é um policial (criador de palavras cruzadas), responda à pergunta complementar se for um assaltante (solucionador de palavras cruzadas). Você pode assumir os dois papéis.
Policiais (Puzzlers)
Sua tarefa é escrever um jogo de palavras cruzadas 10 × 10 onde, em vez de palavras ou frases, trechos de código são a solução para as pistas. Cada pista será uma sequência não vazia de caracteres, de modo que a execução do trecho de código a que se refere imprime a sequência em stdout.
Sua postagem deve incluir três itens:
- Sua grade de palavras cruzadas 10 × 10 em branco , usando
#
para darks (separadores de pistas) e_
para luzes (células a serem preenchidas).- Toda sequência horizontal ou vertical de 2 ou mais luzes (delimitada por trevas ou pela borda da grade) é uma entrada para a qual você deve escrever uma pista. Por conveniência, você deve numerá-las da maneira usual (da esquerda para a direita, de cima para baixo), substituindo o
_
no início de cada entrada por um identificador de caractere exclusivo (por exemplo, 1, 2, ..., A, B , ...). - Sua grade pode ter qualquer número de sombras.
- Sua grade pode ter qualquer número de pistas.
- As entradas horizontais são sempre lidas da esquerda para a direita e as verticais de cima para baixo.
- Toda sequência horizontal ou vertical de 2 ou mais luzes (delimitada por trevas ou pela borda da grade) é uma entrada para a qual você deve escrever uma pista. Por conveniência, você deve numerá-las da maneira usual (da esquerda para a direita, de cima para baixo), substituindo o
- Uma lista de pistas que contém todas as entradas em suas palavras cruzadas.
- As pistas devem conter no mínimo 1 e no máximo 10 caracteres.
- Se suas pistas contiverem espaços, verifique se elas são óbvias quando você formata sua postagem.
- Trechos de código de cabeçalho e rodapé , cada um com 20 caracteres ou menos.
- Eles são executados respectivamente antes e depois de um snippet de solução e podem ajudar a renomear os incorporados longos e outros.
O procedimento para garantir que uma pista corresponda ao seu snippet de código correspondente é:
- Concatenar o cabeçalho, o trecho, eo rodapé:
[header][snippet][footer]
. - Execute isso como um programa normal (independente das execuções anteriores) e observe o que foi impresso no stdout.
- Se isso corresponder à pista, o snippet é uma solução válida.
Para simplificar, você só pode usar ASCII imprimível (códigos hexadecimais 20 a 7E). Somente o cabeçalho e rodapé também podem conter guias e novas linhas.
Notas Adicionais
- Para qualquer trecho, a execução
[header][snippet][footer]
não deve demorar mais de um minuto em um computador moderno decente . - Você deve especificar sua linguagem de programação (e versão).
- Você não pode usar nenhum algoritmo de hash comum.
- Você não pode usar bibliotecas externas.
- Tudo no seu código deve ser determinístico, invariável no tempo e não precisa de uma conexão de rede.
#
e_
pode ocorrer em snippets (ou em qualquer outro lugar).- Você pode revelar alguns dos personagens das palavras cruzadas, como o COTO fez . Eles ainda contam como luzes. Os ladrões não precisam usá-los, são apenas boas dicas.
Exemplo
Um exemplo simples usando Python 3. Cabeçalho: p=print;t=5;
. Sem rodapé.
Grade não resolvida:
##########
1___2___##
_###_#####
_###_#####
_###_#####
####_#####
####_#####
###3______
####_#####
####_#####
Pistas:
ACROSS
1: 8
3: A!
DOWN
1: 7
2: 10
Solução válida:
##########
print(8)##
(###+#####
7###=#####
)###5#####
####;#####
####p#####
###p('A!')
####t#####
####)#####
Ladrões (Solvers)
Sua tarefa é resolver as palavras cruzadas postadas pelos policiais. Você deve usar a mesma linguagem de programação exata como as palavras cruzadas foram fornecidas, mas, caso contrário, qualquer solução que corresponda a todas as pistas é válida.
Você não pode resolver suas próprias palavras cruzadas e pode tentar responder a cada uma das outras palavras cruzadas apenas uma vez.
Lembre-se de postar suas soluções na pergunta complementar .
Pontuação
Se uma palavra cruzada for resolvida dentro de 72 horas, ela não estará mais em exibição. Uma vez que as palavras cruzadas duram sem solução por 72 horas, ela é considerada imune e o criador pode postar a solução (editando a postagem e marcando-a como imune).
O policial vencedor é o usuário que enviou as palavras cruzadas imunológicas com o menor número de negritos ( #
). Em caso de empate, a inscrição mais votada vence. A solução deve ser postada para que a resposta seja aceita.
O ladrão vencedor é o usuário que resolve mais palavras cruzadas. O desempate é a soma dos votos positivos na pergunta complementar .
fonte
sha512sum <<<"
:, rodapé:"|head -c10
(no Bash).Respostas:
JavaScript, 0 darks - imune
Aqui está a solução para todos vocês:
Pistas
Deixe-me saber se você acha que houve algum resultado errado.
fonte
CJam, 41 darks - resolvido por Martin Büttner
Sem cabeçalho, rodapé ou quadrados reservados. Deixe-me saber de possíveis erros.
A solução que eu originalmente tinha em mente não tinha espaço em branco - não foi a que Martin Büttner encontrou.
Borda
Pistas
Através
Baixa
Boa sorte!
fonte
C - 26 darks, 5 reservados - resolvido por feersum
Cabeçalho
Rodapé
Pistas
fonte
MATLAB - 28 Darks
Resolvido por feersum
Pranchas
Cabeçalho
Rodapé
Pistas
Através
2
-1i
eye(3)
0
sqrt(-1)
1/25000
0
[0;0;0]
Baixa
log(1i)
100
10^16
[2,2;2,2]
512
inv(1i)
zeros(3)
Note que eu mudei as coisas um pouco nas pistas deste quebra-cabeça. Como as saídas do MATLAB são invariavelmente detalhadas (por exemplo, até a impressão da unidade imaginária
1i
excede 10 caracteres [0 + 1.0000i
]) e mudam de acordo com o formato de saída padrão, as pistas são todas expressões simples cuja saída exibida é equivalente à das soluções correspondentes .Em outras palavras, você pode considerar uma pista real
disp( CLUE )
, ondeCLUE
está a pista de 10 caracteres ou menos nas listas acima.Espero que Calvin não se importe. Não acredito que isso viole o espírito da regra de comprimento da pista, que provavelmente impedirá que os construtores de palavras cruzadas insiram soluções extremamente difíceis de gerar (ou seja, palavras).
Chave
fonte
Python
Resolvido por feersum
Aqui está um para começar. Eu usei o Python 2.7.8 para obter as pistas. Boa sorte :)
Eu revelei o último trecho desde que o hash agora não é permitido. Além disso, a grade tem 36 pontos escuros (perdi a parte de pontuação quando a fiz).
Revelei mais alguns personagens para facilitar, mas soluções diferentes também são boas.
Grade de palavras cruzadas:
Pistas:
Cabeçalho:
Rodapé:
fonte
p
direito após cada snippet?Javascript ES4 - 37 darks, 10 reservados
Resolvido por bazzarg
Pranchas
Cabeçalho
Rodapé
Pistas
Através
51
true
8.14159265
..."90"
0
-10
"HI"
Baixa
5
"2pac"
3072
false
Observe que incluí uma segunda representação do quadro marcada como "reservada" para indicar dez luzes com caracteres já preenchidos. Estas são para ajudar o solucionador e restringir / desambiguar as possíveis soluções. Não sei se Calvin deseja contá-los como sombrios ou luminosos.
Eu usei as duas representações separadas, já que alguns dos caracteres preenchidos são números e podem ser confundidos com números de pista, e para organizar o quadro de maneira geral.
Não há caracteres de espaço em branco em nenhuma das soluções, embora você possa preencher as luzes com caracteres de espaço em branco, se eles funcionarem.
Solução original
Como se vê, a solução de bazzarg para 9 do outro lado está
-
no lugar errado, mas a pista deveria estar em10
vez de-10
(a pista e a resposta eram originalmente diferentes e eu fiz a mudança às pressas). Portanto, vamos apenas dizer que dois erros fazem um acerto neste caso. ;)fonte
Clues must contain at least 1 and no more than 10 characters.
[object Window]
(que é inválido de qualquer maneira, como o usuário N apontou) parece que depende de ser executado em um ambiente específico. Se isso for verdade, isso não deveria ser especificado?8.141592653589793
e[object Window]
são muito longos.Python 2, 0 escuro - Imune
Python 2 é apenas por causa do
print
no rodapé. Deve funcionar da mesma maneira no Python 3 se você alterar aprint
instrução.Eu me diverti fazendo isso, e no geral estou satisfeito e um pouco animado com o resultado final.
Deixe-me saber se você acha que meu rodapé é muito cruel (se eu soubesse que você poderia se abster de usar um programa para forçá-lo a força bruta, eu removeria a crueldade.) Curiosidade: as variáveis no cabeçalho soletram 'pão'.
Cabeçalho:
Rodapé:
Pistas:
Através
Baixa
Solução
fonte