In questa sfida costruirai un programma che cresce man mano che attraversa i secoli ... Fino al 2017.
Sfida
Ogni volta che questa descrizione della sfida dice "programma", puoi anche leggere "funzione".
L'invio, una volta eseguito, produrrà un programma lungo THE LENGTH OF YOUR SUBMISSION
+ 1
byte.
Quando quel programma viene eseguito, produrrà un programma che è lungo THE LENGTH OF YOUR SUBMISSION
+ 2
byte ... e così via.
Tuttavia , quando il programma ha raggiunto una lunghezza di 2017 byte, deve invece essere emesso 2017
e chiuso.
Regole
- L'output del programma finale deve essere
2017
e solo2017
. Può essere una stringa o un numero intero, ma deve leggere2017
e non2017.0
o0x7E1
o altre sciocchezze. - Nessuna scappatoia standard .
- Solo il tuo programma iniziale può richiedere input, che verranno aggiunti al tuo conto.
Quindi se il tuo programma iniziale è lungo 324 caratteri e richiede un input di 13 byte, il tuo punteggio totale sarà 324 + 13 = 337 e il programma generato da esso deve esserelungo 338 byte.- L'uso dei flag della riga di comando (ad es.
perl -X
) Va bene, tuttavia, purché il programma iniziale e tutti i programmi generati utilizzino gli stessi flag. Inoltre, contano anche per il conteggio totale. I trattini, le barre, ecc. Davanti a un flag della riga di comando non contano ai fini del totale, quindi ad esempioperl -X
conta come un byte aggiuntivo.
- L'uso dei flag della riga di comando (ad es.
- Se si restituisce una funzione, dovrebbe essere una funzione effettiva e non una stringa che, quando valutata, produce una funzione.
- Non sono consentiti quines impropri (se il tuo programma è un quine).
Esempio
Pseudocodice, 99 byte
IF (PROGRAM LENGTH == 2017) PRINT 2017 ELSE PRINT (THE SOURCE OF THIS PROGRAM + 1 BYTE PADDING)
Il tuo invio potrebbe funzionare in modo diverso, purché conforme alle regole sopra.
;;;
consentito solo aggiungere NOP come ?