Nous connaissons tous, ou du moins avons entendu parler de brainfuck , l'une des langues ésotériques les plus célèbres et les plus influentes. Alors que de nos jours la plupart des implémentations utilisent une bande infinie, le compilateur original d'Urban Müller avait une bande de 30000 cellules. Un fait peu connu * est qu'il y a en fait une valeur spéciale à la fin de la bande, quelque chose qui n'est presque jamais interagi avec un programme typique de brainfuck.
Bien que vous puissiez imprimer cette valeur avec 29999 >
s et a .
, brainfuck est connu pour ses solutions courtes et concises, votre objectif est donc d'imprimer cette valeur avec le nombre minimum de caractères.
*fiction
Règles:
- Un rappel sur les instructions de brainfuck:
+
/-
: Incrémente / décrémente la cellule actuelle, en passant de 255 à 0 lorsque 255 est incrémenté et vice-versa<
/>
: Déplacer le pointeur vers la gauche / droite sur la bande.
: Imprime la valeur de la cellule actuelle.[
: Aller au correspondant]
si la valeur dans la cellule est 0]
: Aller au correspondant[
si la valeur de la cellule n'est pas 0
- Dans ce cas
,
(Get input) ne fait rien, car le compilateur d'origine laisse la cellule inchangée sur EOF, et ce programme ne doit recevoir aucune entrée. - La bande est initialement remplie de tous les 0, à l'exception de la cellule 30000, qui contient une valeur inconnue
- Le pointeur commence à la cellule 1 et doit se terminer sur la cellule 30000, après l'avoir imprimé.
- Les cellules situées à gauche de 1 et à droite de 30000 ont un comportement indéfini, les solutions ne doivent donc pas visiter ces cellules.
- Notez que la valeur à 30000
estpeut-être un 0, donc une simple boucle jusqu'à ce que vous atteigniez une cellule non nulle ne fonctionnera pas. - Vous devez imprimer uniquement la valeur dans la cellule 30000
- La solution la plus courte gagne!
- Tie-breaker est le programme le plus efficace (s'exécute dans les moindres étapes), suivi du temps de soumission le plus rapide.
Astuce: Esolanging Fruit suggère d'utiliser https://copy.sh/brainfuck pour tester votre code. Les spécifications sont telles que décrites dans ce défi, et vous pouvez sélectionner l' abort
option pour que votre programme s'arrête s'il sort des limites.
.
. Je gagne.