Circa un anno fa, il 31 dicembre 2015, ho avuto l'idea che:
Doorknob ha gentilmente raccolto personaggi della comunità PPCG e li ha tenuti al sicuro per un anno.
Un enorme 74 persone hanno partecipato quindi abbiamo uno spiffing 74 stampabili ASCII personaggi con cui giocare!
Ecco i 74 caratteri della stringa della capsula del tempo 2016 nell'ordine in cui sono stati inviati:
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
Ecco i 74 caratteri della stringa della capsula del tempo 2016 in ordine ASCII (nota lo spazio iniziale):
!!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ\\^`````````eefmpxy{||||~~~~~~~~~
Non è molto da lavorare, ma qui ci piace una sfida.
La sfida
Per determinare quale lingua è "migliore" con la stringa della capsula del tempo avremo 6 (per 201 6 ) sfide che aumentano in difficoltà dove in ognuna devi usare un sottoinsieme dei 74 caratteri della capsula del tempo.
Avere 6 sfide distinte aiuta a garantire che più lingue possano competere, ma solo le migliori lingue saranno in grado di rispondere a tutte e ottenere punteggi alti.
punteggio:
- Ogni sfida verrà segnata da 0 a 74 in base al numero di personaggi utilizzati.
- I punteggi più alti sono migliori.
- Se la tua lingua non può completare una sfida, il tuo punteggio per quella sfida è 0.
- Qualsiasi sottoinsieme non vuoto delle sfide può essere completato.
- Il tuo punteggio finale è la somma dei punteggi di tutte e 6 le sfide.
- Il miglior punteggio finale possibile è 6 × 74 o 444 .
Le sfide
1. Esegui
Se il codice di una lingua non può essere eseguito in primo luogo, non sarà in grado di fare nulla.
Scrivi il programma completo più lungo possibile (usando solo i caratteri della capsula del tempo 74, ricorda) che viene eseguito / eseguito senza errori di compilazione o di runtime.
Non importa cosa fa il programma, non importa se ha input / output o entra in un ciclo infinito, importa solo che funziona senza errori. (Gli avvisi sono ok, così come gli errori causati da un input utente errato.)
I commenti sono consentiti, quindi potrebbe essere semplice come
#H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
in Python per un punteggio di 74.
(Non abbiate paura di rispondere se questa è l'unica sfida che la vostra lingua può completare, ma non aspettatevi nemmeno un sacco di voti.)
Punteggio = durata del programma (programma più lungo è meglio)
2. I / O
Un linguaggio che non ha alcuna forma di input o output è quasi inutile come uno che non può essere eseguito.
Dato un carattere ASCII stampabile da !
(0x33) a }
(0x7D) incluso, emette il carattere ASCII stampabile prima e dopo di esso.
L'output può essere una lunghezza di due stringhe o elenchi oppure i caratteri separati da uno spazio o da una nuova riga.
Ad esempio, se l'input è }
l'output potrebbe essere |~
o ["|", "~"]
o | ~
o |\n~
.
Allo stesso modo, "
è l'output per !
ed AC
è l'output per B
.
Punteggio = 74 - durata del programma (programma più corto è meglio)
3. Brancabilità
I condizionali sono spesso un requisito per la completezza di Turing , che è spesso un requisito per una lingua utile.
Dato un numero intero positivo, se termina con le cifre decimali, 16
cambia 6
in a 7
e invia il risultato; in caso contrario, immettere l'input invariato. Se lo si desidera, è possibile utilizzare stringhe per input / output.
Esempi:
2016 -> 2017
16 -> 17
116 -> 117
1616 -> 1617
6 -> 6
15 -> 15
17 -> 17
106 -> 106
2106 -> 2106
Punteggio = 74 - durata del programma (programma più corto è meglio)
4. Loopabilità
Un linguaggio che non può fare loop genererà codice ripetitivo così noioso che dovrai fare una pausa di programmazione per un po '.
Dato un numero intero positivo, genera un quadrato di arte ASCII di quella lunghezza laterale riempito con un motivo di quadrati concentrici più piccoli che si alternano tra due distinti caratteri ASCII stampabili . Non devono essere gli stessi due caratteri per input diversi.
Per esempio:
1 <- input
X <- output
2
XX
XX
3
XXX
X-X
XXX
4
XXXX
X--X
X--X
XXXX
5
YYYYY
Y...Y
Y.Y.Y
Y...Y
YYYYY
6
XXXXXX
X----X
X-XX-X
X-XX-X
X----X
XXXXXX
7
ZZZZZZZ
Z-----Z
Z-ZZZ-Z
Z-Z-Z-Z
Z-ZZZ-Z
Z-----Z
ZZZZZZZ
Punteggio = 74 - durata del programma (programma più corto è meglio)
5. Matematica
Un linguaggio che non è buono con i numeri e la matematica può anche essere per le discipline umanistiche.
Non prendere input ma emettere i 72 divisori interi del 2016 , positivi e negativi, in qualsiasi ordine. L'output può essere formattato come stringa o elenco in modo ragionevole.
Esempio:
-1, -2, -3, -4, -6, -7, -8, -9, -12, -14, -16, -18, -21, -24, -28, -32, -36, -42, -48, -56, -63, -72, -84, -96, -112, -126, -144, -168, -224, -252, -288, -336, -504, -672, -1008, -2016, 1, 2, 3, 4, 6, 7, 8, 9, 12, 14, 16, 18, 21, 24, 28, 32, 36, 42, 48, 56, 63, 72, 84, 96, 112, 126, 144, 168, 224, 252, 288, 336, 504, 672, 1008, 2016
Punteggio = 74 - durata del programma (programma più corto è meglio)
6. Esoterismo
(No, non quello .) A PPCG piace la nostra roba esoterica e le quine ne sono un buon esempio.
Scrivi il quine più lungo che puoi, secondo le normali regole del quine . Un quine è un programma che non accetta input e si emette da solo.
Punteggio = durata del programma (programma più lungo è meglio)
Regole specifiche
- In ognuna delle 6 sfide il tuo programma deve essere un sottoinsieme dei 74 caratteri capsula del tempo riorganizzati nel modo che preferisci. Può essere un sottoinsieme vuoto o un sottoinsieme improprio , quindi ognuno dei tuoi programmi può avere fino a 0 e fino a 74 caratteri.
- Una singola riga finale alla fine di input / output / codice va bene ovunque poiché alcune lingue lo richiedono o non può essere facilmente evitata.
- Se non diversamente specificato, ogni sfida può essere completata come funzione o programma completo in base alle nostre impostazioni predefinite .
- Tutte le sfide devono essere completate nella stessa lingua.
- Devi usare una lingua (o versione di una lingua) creata prima del 2017 in qualsiasi parte della Terra .
- Chiunque è invitato a rispondere, indipendentemente dal fatto che tu abbia aggiunto o meno un personaggio alla capsula del tempo.
Sentiti libero di usare i personaggi della capsula del tempo 2016 nelle tue sfide.
6×74 or 444
non sia possibile, poiché ciò significherebbe programmi vuoti, che in qualche modo si comportano diversamente. quindi, 442 è il minimo effettivo, poiché ciò significa che due dei 3 programmi di input input hanno un carattere al loro interno