Votre défi consiste à prendre des commentaires comme celui-ci (un programme Hello World):
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
Et affichez une invite (qui sera "> "
):
>
L'utilisateur peut alors saisir quoi que ce soit à l'invite. Votre débogueur simple doit avoir ces commandes:
S
- étape- Afficher l'emplacement actuel (voir
L
) après avoir effectué un pas. S(a positive integer)
- étape que de nombreux espaces
- Afficher l'emplacement actuel (voir
L
- emplacement- Le terme «emplacement» fait toujours référence à l'endroit où vous vous trouvez dans le programme (c'est-à-dire le pointeur d'instruction).
Formaté comme ceci:
v +++++++[>+++++++<-]>.
Cela signifie que l'emplacement actuel du programme est au troisième
+
.
G(an integer)
- aller à- Cela signifie continuer à marcher jusqu'à ce que vous arriviez à cet endroit. Si vous atteignez la fin du programme et que vous n'y êtes pas arrivé, quittez simplement le programme.
- Un entier négatif signifie que beaucoup de caractères à partir de la fin. Oui, cela signifie que
-0
c'est différent de0
, et-1
c'est l'avant-dernier caractère. - Ne rien afficher pour cette commande.
D
- tableau de vidage- Formaté comme
1, 2, 3, 4, 5
- Si le tableau l'est
1, 2, 3, 0, 0, 0, 0, 0, ...
, uniquement en sortie1, 2, 3
. D(a positive integer) (a positive integer)
- vider tous les éléments du tableau entre ces deux positions (inclus)
- Formaté comme
(a positive integer)
- afficher l'élément actuellement à cette position du tableauP
- afficher l'index du pointeur BF (la chose que vous changez avec>
et<
).
Lorsque le programme demande une entrée, affichez l'invite "I> "
. (Vous pouvez saisir un caractère à la fois.)
Quand il sort quelque chose, montrez "O> " + (the output)
. Plusieurs sorties entre les commandes doivent être chaînées ensemble (c'est-à-dire que vous ne pouvez pas le faire > G-0 O> H O> e O> l O> l O> o ...
, cela doit être > G-0 O> Hello, World!
).
Sortie "Terminé" et quittez une fois que vous atteignez la fin du programme.
Exemple d'exécution:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
> S
1
> S
2
> S2
4
> S0
4
> L
v
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
> D
4
> 0
4
> D10 15
0, 0, 0, 0, 0, 0
> G-0
O> Hello, World!
Done
Exemple de parcours montrant les étapes et les P
instructions (calcule 3*2+1
)
+++[>++<-]>+
> S3
3
> L
v
+++[>++<-]>+
> S3
6
> L
v
+++[>++<-]>+
> P
1
> S3
9
> L
v
+++[>++<-]>+
> S
3
> L
v
+++[>++<-]>+
> D
2, 2
>
Exemple d'exécution montrant les E / S
>+[>,---------------------------------]<[<]>[>.]
> G37
I> H
I> e
I> l
I> l
I> o
I> !
> D
0, 39, 68, 75, 75, 78
> G-0
O> 'DKKN
Done
C'est le code-golf , donc le code le plus court gagnera.