La tua sfida è prendere input in questo modo (un programma Hello World):
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
E genera un prompt (che sarà "> "):
>
L'utente può quindi inserire qualsiasi cosa al prompt. Il tuo debugger semplice deve avere questi comandi:
S- passo- Emette la posizione corrente (vedi
L) dopo il passo. S(a positive integer)- passo che molti spazi
- Emette la posizione corrente (vedi
L- Posizione- Il termine "posizione" si riferisce sempre al punto in cui ci si trova nel programma (ovvero al puntatore dell'istruzione).
Formattato in questo modo:
v +++++++[>+++++++<-]>.Ciò significa che la posizione corrente del programma è al terzo
+.
G(an integer)- vai a- Ciò significa che continua a fare un passo fino a raggiungere quella posizione. Se raggiungi la fine del programma e non ci sei arrivato, esci semplicemente dal programma.
- Un numero intero negativo indica che molti caratteri dalla fine. Sì, questo significa che
-0è diverso da0, ed-1è il penultimo personaggio. - Non emettere nulla per questo comando.
D- dump array- Formattato come
1, 2, 3, 4, 5 - Se l'array è
1, 2, 3, 0, 0, 0, 0, 0, ..., solo output1, 2, 3. D(a positive integer) (a positive integer)- scarica tutti gli elementi dell'array tra quelle due posizioni (incluso)
- Formattato come
(a positive integer)- produce l'elemento attualmente in quella posizione dell'arrayP- genera l'indice del puntatore BF (la cosa che cambi con>e<).
Quando il programma richiede input, mostra il prompt "I> ". (È possibile inserire un carattere alla volta.)
Quando emette qualcosa, mostra "O> " + (the output). Più output tra comandi devono essere concatenati (cioè non puoi farlo > G-0 O> H O> e O> l O> l O> o ..., deve esserlo > G-0 O> Hello, World!).
Emetti "Fine" ed esci una volta raggiunta la fine del programma.
Esecuzione di esempio:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
> 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
Esecuzione di esempio che mostra il passaggio attraverso i loop e l' Pistruzione (calcola 3*2+1)
+++[>++<-]>+
> S3
3
> L
v
+++[>++<-]>+
> S3
6
> L
v
+++[>++<-]>+
> P
1
> S3
9
> L
v
+++[>++<-]>+
> S
3
> L
v
+++[>++<-]>+
> D
2, 2
>
Esempio di esecuzione che mostra I / O
>+[>,---------------------------------]<[<]>[>.]
> G37
I> H
I> e
I> l
I> l
I> o
I> !
> D
0, 39, 68, 75, 75, 78
> G-0
O> 'DKKN
Done
Questo è code-golf , quindi vincerà il codice più corto.