Cruciverba di codice


22

Questa è una sfida per . Rispondi qui se sei un poliziotto (creatore di parole crociate), rispondi alla domanda del compagno se sei un ladro (risolutore di parole crociate). Puoi assumere entrambi i ruoli.

Poliziotti (Rompicapo)

Il tuo compito è di scrivere un cruciverba 10 × 10 in cui, invece di parole o frasi, frammenti di codice sono le soluzioni agli indizi. Ogni indizio sarà una sequenza non vuota di caratteri tale che l'esecuzione dello snippet di codice a cui fa riferimento stamperà la sequenza su stdout.

Il tuo post deve includere tre cose:

  1. La tua griglia di parole incrociate 10 × 10 vuota , usando #per i bui (separatori di indizi) e _per le luci (celle da riempire).
    • Ogni sequenza orizzontale o verticale di 2 o più luci (delimitata da ombre o dal bordo della griglia) è una voce per la quale è necessario scrivere un indizio. Per comodità, dovresti numerarli nel solito modo (da sinistra a destra, dall'alto verso il basso) sostituendo _all'inizio di ogni voce con un identificatore di carattere univoco (ad esempio 1, 2, ..., A, B , ...).
    • La tua griglia potrebbe avere un numero qualsiasi di oscurità.
    • La tua griglia può avere qualsiasi numero di indizi.
    • Le voci orizzontali vengono sempre lette da sinistra a destra e quelle verticali dall'alto verso il basso.
  2. Un elenco di indizi che contiene ogni voce nel tuo cruciverba, verso il basso e attraverso.
    • Gli indizi devono contenere almeno 1 e non più di 10 caratteri.
    • Se i tuoi indizi contengono spazi assicurati che siano ovvi quando formatti il ​​tuo post.
  3. Frammenti di codice di intestazione e piè di pagina , ciascuno di 20 caratteri o meno.
    • Questi vengono eseguiti rispettivamente prima e dopo uno snippet di soluzione e possono aiutare a rinominare i lunghi incorporati e simili.

La procedura per garantire che un indizio corrisponda al frammento di codice corrispondente è:

  1. Concatena l'intestazione, lo snippet e il piè di pagina: [header][snippet][footer] .
  2. Esegui questo come un normale programma (indipendentemente dalle esecuzioni precedenti) e guarda cosa è stato stampato su stdout.
  3. Se questo corrisponde all'indizio, lo snippet è una soluzione valida.

Per semplicità puoi usare solo ASCII stampabile (codici esadecimali da 20 a 7E). Solo l'intestazione e il piè di pagina possono contenere schede e righe.

Note aggiuntive

  • Per ogni frammento, la corsa [header][snippet][footer]non dovrebbe richiedere più di un minuto su un computer moderno decente .
  • Devi specificare il tuo linguaggio di programmazione (e versione).
  • Non è possibile utilizzare alcun algoritmo di hashing comune.
  • Non è possibile utilizzare librerie esterne.
  • Tutto nel tuo codice deve essere deterministico, invariante nel tempo e non necessita di una connessione di rete.
  • #e _può verificarsi in frammenti (o altrove).
  • Potresti rivelare alcuni dei caratteri nel cruciverba come ha fatto COTO . Contano ancora come luci. I ladri non sono tenuti a usarli, sono solo dei bei suggerimenti.

Esempio

Un semplice esempio utilizzando Python 3. Intestazione: p=print;t=5;. Nessun piè di pagina.

Griglia non risolta:

##########
1___2___##
_###_#####
_###_#####
_###_#####
####_#####
####_#####
###3______
####_#####
####_#####

indizi:

ACROSS
1: 8
3: A!
DOWN
1: 7
2: 10

Soluzione valida:

##########
print(8)##
(###+#####
7###=#####
)###5#####
####;#####
####p#####
###p('A!')
####t#####
####)#####

Ladri (risolutori)

Il tuo compito è risolvere i cruciverba pubblicati dagli sbirri. È necessario utilizzare lo stesso linguaggio di programmazione esatto in cui è stato fornito il cruciverba, ma in caso contrario è valida qualsiasi soluzione che corrisponda a tutti gli indizi.

È possibile che non si risolvano i propri cruciverba e si può tentare di rispondere a ciascuno degli altri cruciverba solo una volta.

Ricorda di pubblicare le tue soluzioni nella domanda associata .

punteggio

Se un cruciverba viene risolto entro 72 ore non è più in esecuzione. Una volta che un cruciverba è rimasto irrisolto per 72 ore, viene considerato immune e il creatore può pubblicare la soluzione (modificando il proprio post e contrassegnandolo come immune).

Il poliziotto vincente è l'utente che ha inviato il cruciverba immune con il minor numero di dark ( #). In caso di parità vince la proposta più votata. La soluzione deve essere inviata affinché la risposta sia accettata.

Il ladro vincente è l'utente che risolve il maggior numero di parole crociate. Il tie-breaker è la somma dei loro voti positivi nella domanda sul compagno .


1
Sei già annoiato con Code Tetris?
feersum

3
@feersum Nessuno li sta risolvendo. Spero che questo sia più facile per i ladri.
Calvin's Hobbies,

9
Intestazione:, sha512sum <<<"piè di pagina: "|head -c10(in Bash).
jimmy23013,

1
@ user23013 Yikes. Penso che proibirò l'hashing.
Calvin's Hobbies,

2
@Rodolvertice Anche se ancora una volta si potrebbe dire che sia stato risolto all'istante ... quindi forse hai ragione. Ma sono d'accordo che è troppo tardi per cambiarlo (fare un buon puzzle senza oscurità non è esattamente banale).
Calvin's Hobbies,

Risposte:


5

JavaScript, 0 dark - immune

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

Ecco la soluzione per tutti voi:

 __________
| ~ 709-51 + 90 |
| -0x33-31 & 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'-025.036 |
 ----------
Header: var h=8,x=5;console.log(

Footer: );

indizi

Attraverso
1. -671
B. 8
C. -460
D. 54
E. 33
F. falso
G. 1
H. vero
I. -151
J. -10776

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

Fammi sapere se pensi che ci siano risultati che ho calcolato male.


3
Sei sicuro di non aver confuso Across e Down?
orgoglioso haskeller il

3

CJam, 41 darks - risolto da Martin Büttner

Nessuna intestazione, piè di pagina o quadrati riservati. Fammi sapere di eventuali potenziali bug.

La soluzione che avevo in mente inizialmente non aveva spazi bianchi - non è quella che Martin Büttner ha trovato.

Tavola

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

indizi

Attraverso

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

Giù

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

In bocca al lupo!


4
Risolto. Grazie per la sfida, è stato davvero divertente! :)
Martin Ender,

3

C - 26 oscuri, 5 riservati - risolti dal 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 * # _   |
+----------+     +----------+

Intestazione

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

footer

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

indizi

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

Cosa è 5 down?
feersum

@feersum 5 down is 0 (risposta modificata)
es1024

Si compila con gcc e funziona senza argomenti?
grc

@grc sì sì
es1024


3

MATLAB - 28 Darks

Risolto da feersum

Boards

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

Intestazione

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

footer

);

indizi

Attraverso

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

Giù

  • 2 log(1i)
  • 3 100
  • 4 10^16
  • 5 [2,2;2,2]
  • 8 512
  • UN inv(1i)
  • D zeros(3)

Nota che ho cambiato leggermente le cose negli indizi per questo puzzle. Poiché gli output MATLAB sono invariabilmente dettagliati (ad esempio, anche la stampa dell'unità immaginaria 1isupera i 10 caratteri [ 0 + 1.0000i]) e cambiano in base al formato di output predefinito, gli indizi sono tutte espressioni semplici il cui output visualizzato è equivalente a quello delle soluzioni corrispondenti .

In altre parole, puoi considerare un indizio vero e proprio disp( CLUE ), dov'è CLUEl' indizio di 10 caratteri o meno negli elenchi sopra.

Spero che a Calvin non dispiaccia. Non credo che ciò violi lo spirito della regola della lunghezza degli indizi, che probabilmente impedisce ai costruttori di parole crociate di inserire soluzioni estremamente difficili da generare (ad esempio parole).

Chiave

    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|
 ¯¯¯¯¯¯¯¯¯¯ 


3

Pitone

Risolto da feersum

Eccone uno per iniziare. Ho usato Python 2.7.8 per ottenere gli indizi. In bocca al lupo :)

Ho rivelato l'ultimo frammento da quando l'hashing è ora vietato. Inoltre, la griglia ha 36 dark (ho perso la parte del punteggio quando l'ho fatta).

Ho rivelato alcuni altri personaggi per renderlo più semplice, ma anche diverse soluzioni vanno bene.

Griglia cruciverba:

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

indizi:

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

Intestazione:

a=49481
b=97381
x=

piè di pagina:

print`x`[:10]

Per chiarire, il piè di pagina è sulla propria riga o è il pdiritto dopo ogni frammento?
Calvin's Hobbies,

@ Calvin'sHobbies Il piè di pagina inizia su una nuova riga.
grc

A-across è qualcosa di particolarmente diabolico? Ho una griglia che funziona per tutto tranne quello.
feersum

@feersum È un'espressione matematica come le altre, ma potrebbe essere piuttosto complicata. Ricorda, l'output viene troncato a 10 caratteri.
grc,


3

Javascript ES4 - 37 Darks, 10 riservato

Risolto da bazzarg

Boards

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

Intestazione

a=3;I=9;t=

footer

;console.log(t);

indizi

Attraverso

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

Giù

  • 1 5
  • 2 "2pac"
  • 3 3072
  • 5 false

Si noti che ho incluso una seconda rappresentazione della scheda contrassegnata come "riservata" per indicare dieci luci con caratteri già compilati. Queste sono per aiutare il risolutore e per limitare / chiarire le possibili soluzioni. Non sono sicuro che Calvin voglia contarli come oscurità o luci.

Ho usato le due rappresentazioni separate poiché alcuni dei personaggi compilati sono numeri e potrebbero essere confusi per i numeri di indizio e per declutterare la scheda in generale.

Non ci sono caratteri di spazi bianchi in nessuna delle soluzioni, anche se sei il benvenuto a riempire le luci con caratteri di spazi bianchi se funzionano.

Soluzione originale

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

A quanto pare, la soluzione di bazzarg per 9 across si trova -nel posto sbagliato, ma l'indizio doveva essere al 10posto di -10(l'indizio e la risposta erano originariamente diversi e ho fatto il passaggio in fretta). Quindi diremo solo che due errori fanno un diritto in questo caso. ;)


1
Idea interessante sui personaggi riservati. Non li farò contare come oscuri perché allora le persone avrebbero ancora più incentivi a non usarli.
Calvin's Hobbies,

1
Ho riscontrato lo stesso problema durante la creazione di un cruciverba, ma questo non è valido. Clues must contain at least 1 and no more than 10 characters.
jimmy23013,

Non conosco JavaScript ma qualcosa di simile [object Window](che non è valido in ogni caso, come ha sottolineato l'utente N) sembra che dipenda dall'essere eseguito in un ambiente specifico. Se questo è vero, non dovrebbe essere specificato?
feersum

L'utente 23013 ha ragione. 8.141592653589793e [object Window]sono troppo lunghi.
Calvin's Hobbies,

Posso troncare l'espressione per 6-across. Dovrebbe essere ovvio quale sia il numero (e come generarlo) indipendentemente dal numero di cifre decimali. Per quanto riguarda 9-through, l'output è in effetti specifico del browser (anche se credo che il formato che ho usato sia comune a tutti e cinque i browser principali). Modificherò la risposta effettiva in questo caso.
COTO

1

Python 2, 0 dark - Immune

Python 2 è solo a causa del printpiè di pagina. Dovrebbe funzionare allo stesso modo in Python 3 se si modifica l' printistruzione.

Mi sono divertito a farlo, e nel complesso sono soddisfatto e un po 'emozionato per il risultato finale.

Fammi sapere se pensi che il mio piè di pagina sia troppo crudele (se sapessi che potresti astenermi dall'utilizzare un programma per forzarlo brutalmente, rimuoverei la crudeltà.) Fatto divertente: le variabili nell'intestazione "pane".

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

Intestazione:

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

piè di pagina:

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

indizi:

Attraverso

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

Giù

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

Soluzione

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.