Vous devez écrire un programme de brainfuck (BF) long de 100 octets.
Un caractère en sera supprimé de toutes les manières possibles, les 100 nouveaux programmes résultants (de 99 octets de long). Par exemple , pour le programme ++.>.
les 5 sous - programmes sont +.>.
, +.>.
, ++>.
, ++..
et ++.>
.
Votre score sera le nombre de sorties uniques générées par les 100 programmes. Un score plus élevé est meilleur.
Détails
- Vos programmes seront interrompus après la sortie du premier caractère.
- Les programmes invalides ou non terminés et les programmes générant des sorties vides ne sont pas pris en compte dans le score.
- Les cellules BF sont des cellules enveloppantes 8 bits. (255 + 1 = 0, 0-1 = 255)
- Votre programme ne reçoit aucune entrée. Si vous utilisez
,
dans le code, il définit la cellule actuelle sur0
. - Il n'y a pas de cellules sur le côté gauche de la position de départ. Par exemple, il
<.
n'est pas valide mais.<
est valide car l'exécution se termine à.
. La bande est illimitée dans l'autre sens. - Les programmes avec des crochets non équilibrés (
[
et]
) ne sont pas valides. - Votre programme d'origine peut être plus court que 100 octets car il est facile de l'étendre à 100 octets sans changer le score.
- Votre programme d'origine ne doit pas nécessairement être un code BF valide.
Vous pouvez utiliser ce programme python3 (lien ideone) pour déterminer le score de votre réponse. (Pour les programmes de longue durée, vous devrez peut-être modifier la maxstep
variable.)
Exemple
(Pour plus de simplicité, ce programme est plus court que 100 octets.)
Solution: ++,+[-]+><.-,-.
Score: 3
Explanation:
Subprogram => Output
+,+[-]+><.-,-. => 1
+,+[-]+><.-,-. => 1
+++[-]+><.-,-. => 1
++,[-]+><.-,-. => 1
++,+-]+><.-,-. => None
++,+[]+><.-,-. => None
++,+[-+><.-,-. => None
++,+[-]><.-,-. => 0
++,+[-]+<.-,-. => None
++,+[-]+>.-,-. => 0
++,+[-]+><-,-. => 255
++,+[-]+><.,-. => 1
++,+[-]+><.--. => 1
++,+[-]+><.-,. => 1
++,+[-]+><.-,- => 1
Unique outputs are [0, 1, 255]
Score is 3 for ++,+[-]+><.-,-. (length = 15)
En cas d'égalité, le gagnant est celui qui a le code le plus court. (Votre programme peut être inférieur à 100 octets, comme indiqué dans la section Détails.) Si les codes sont de longueur égale, le gagnant est l'affiche précédente.
Puzzle bonus: sans la restriction en gras, pouvez-vous trouver un programme avec un score de 100?