Palavras cruzadas de código

22

Este é um desafio de . 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:

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

  1. Concatenar o cabeçalho, o trecho, eo rodapé: [header][snippet][footer].
  2. Execute isso como um programa normal (independente das execuções anteriores) e observe o que foi impresso no stdout.
  3. 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 .

Passatempos de Calvin
fonte
1
Você já está entediado com o Code Tetris?
feersum
3
@feersum Ninguém está resolvendo isso. Espero que este seja mais fácil para os ladrões.
Hobbies de Calvin
9
Cabeçalho sha512sum <<<":, rodapé: "|head -c10(no Bash).
jimmy23013
1
@ user23013 Caramba. Acho que vou proibir o hash.
Passatempos de Calvin
2
@Rodolvertice Embora se possa dizer que foi resolvido instantaneamente ... então talvez você esteja certo. Mas eu concordo que é tarde demais para mudar isso (fazer um bom quebra-cabeça sem sombras não é exatamente trivial).
Passatempos de Calvin

Respostas:

5

JavaScript, 0 darks - imune

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

Aqui está a solução para todos vocês:

 __________
| ~ 709-51 + 90 |
| -0x33-31 e 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

Através
1. -671
B. 8
C. -460
D. 54
E. 33
F. false
G. 1
H. verdade
I. -151
J. -10776

Baixa
1. NaN
2. 15
3. "1131t2"
4. 64
5.48
6. 49
7. 6
8. verdadeiro
9. 8
A. 315

Deixe-me saber se você acha que houve algum resultado errado.

NinjaBearMonkey
fonte
3
Tem certeza de que não misturou Across e Down?
proud haskeller
3

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

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

Pistas

Através

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

Baixa

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

Boa sorte!

Comunidade
fonte
4
Resolvido. Obrigado pelo desafio, foi muito divertido! :)
Martin Ender
3

C - 26 darks, 5 reservados - resolvido 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 * # _   |
+----------+     +----------+

Cabeçalho

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

Rodapé

;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
fonte
O que é 5 baixo?
feersum
@feersum 5 para baixo é 0 (resposta editado)
es1024
Ele é compilado com o gcc e executado sem argumentos?
grc 25/10
@grc sim ele faz
es1024 25/10
2
Solução aqui
feersum
3

MATLAB - 28 Darks

Resolvido por feersum

Pranchas

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

Cabeçalho

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

Rodapé

);

Pistas

Através

  • 1 2
  • 6 -1i
  • 7 eye(3)
  • 9 0
  • B sqrt(-1)
  • C 1/25000
  • D 0
  • E [0;0;0]

Baixa

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

    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
fonte
2
resolvido aqui
feersum
3

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:

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

Cabeçalho:

a=49481
b=97381
x=

Rodapé:

print`x`[:10]
grc
fonte
Para esclarecer, o rodapé está em sua própria linha ou é o pdireito após cada snippet?
Passatempos de Calvin
@ Calvin'sHobbies O rodapé começa em uma nova linha.
grc 25/10
A-através de algo é especialmente diabólico? Eu tenho uma grade que funciona para tudo, exceto aquela.
feersum
@feersum É uma expressão matemática como as outras, mas pode ser bastante complicada. Lembre-se, a saída é truncada para 10 caracteres.
grc 27/10
1
Solução
feersum
3

Javascript ES4 - 37 darks, 10 reservados

Resolvido por bazzarg

Pranchas

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

Cabeçalho

a=3;I=9;t=

Rodapé

;console.log(t);

Pistas

Através

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

Baixa

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

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

Como se vê, a solução de bazzarg para 9 do outro lado está -no lugar errado, mas a pista deveria estar em 10vez 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. ;)

COTO
fonte
1
Ideia interessante sobre os caracteres reservados. Não os farei contar como obscuros, porque as pessoas teriam ainda mais incentivo para não usá-los.
Passatempos de Calvin
1
Encontrei o mesmo problema ao fazer palavras cruzadas, mas isso não é válido. Clues must contain at least 1 and no more than 10 characters.
jimmy23013
Eu não sei JavaScript, mas algo como [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?
feersum
O usuário 23013 está certo. 8.141592653589793e [object Window]são muito longos.
Passatempos de Calvin
Eu posso truncar a expressão para 6 vezes. Deve ser óbvio qual é o número (e como gerá-lo), independentemente do número de casas decimais. Quanto ao 9-across, a saída é realmente específica do navegador (embora eu acredite que o formato que eu usei seja comum aos cinco principais navegadores). Vou alterar a resposta real neste caso.
COTO
1

Python 2, 0 escuro - Imune

Python 2 é apenas por causa do printno rodapé. Deve funcionar da mesma maneira no Python 3 se você alterar a printinstruçã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'.

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

Cabeçalho:

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

Rodapé:

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

Pistas:

Através

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

Baixa

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

Solução

__________ |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
fonte