Dans ce défi, vous construirez un programme qui grandit au fil des âges… jusqu'à 2017.
Défi
Chaque fois que cette description de défi indique «programme», vous pouvez également lire «fonction».
Votre soumission, une fois exécutée, générera un programme de THE LENGTH OF YOUR SUBMISSION
+ 1
octets.
Lorsque ce programme est exécuté, il affichera un programme de THE LENGTH OF YOUR SUBMISSION
+ 2
octets de long… et ainsi de suite.
Cependant , lorsque votre programme a atteint une longueur de 2017 octets, il doit à la place sortir 2017
et quitter.
Règles
- Le résultat du programme final doit être
2017
et seulement2017
. Il peut s'agir d'une chaîne ou d'un entier, mais il doit lire2017
et non2017.0
ou0x7E1
un autre non-sens. - Pas de failles standard .
- Seul votre programme initial est autorisé à nécessiter une entrée, qui sera ajoutée à votre bytecount.
Donc, si votre programme initial comporte 324 caractères et prend une entrée de 13 octets, votre score total sera de 324 + 13 = 337 et le programme émis par celui-ci doit être de 338 octets.- L'utilisation d'indicateurs de ligne de commande (par exemple
perl -X
) est très bien, cependant - tant que votre programme initial ainsi que tous les programmes générés utilisent les mêmes indicateurs. De plus, ils comptent également dans le total des octets. Les tirets, les barres obliques, etc. devant un drapeau de ligne de commande ne comptent pas dans le total, par exemple,perl -X
compte comme un octet supplémentaire.
- L'utilisation d'indicateurs de ligne de commande (par exemple
- Si vous renvoyez une fonction, il doit s'agir d'une fonction réelle et non d'une chaîne qui, lorsqu'elle est évaluée, produit une fonction.
- Les quines incorrects (si votre programme est un quine) sont interdits.
Exemple
Pseudocode, 99 octets
IF (PROGRAM LENGTH == 2017) PRINT 2017 ELSE PRINT (THE SOURCE OF THIS PROGRAM + 1 BYTE PADDING)
Votre soumission peut fonctionner différemment, tant qu'elle respecte les règles ci-dessus.
;;;
autorisé?