Ihre Herausforderung besteht darin, einen Beitrag wie diesen zu verfassen (ein Hello World-Programm):
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
Und geben Sie eine Eingabeaufforderung aus (die sein wird "> "):
>
Der Benutzer kann dann an der Eingabeaufforderung alles eingeben. Ihr einfacher Debugger muss über folgende Befehle verfügen:
S- Schritt- Gibt die aktuelle Position (siehe
L) nach dem Schritt aus. S(a positive integer)- So viele Räume betreten
- Gibt die aktuelle Position (siehe
L- Lage- Der Begriff "Ort" bezieht sich immer darauf, wo Sie sich im Programm befinden (dh auf den Befehlszeiger).
So formatiert:
v +++++++[>+++++++<-]>.Dies bedeutet, dass der aktuelle Programmstandort auf dem dritten Platz liegt
+.
G(an integer)- gehe zu- Dies bedeutet, dass Sie weitergehen, bis Sie an diesen Ort gelangen. Wenn Sie das Programmende erreicht haben und noch nicht dort angekommen sind, beenden Sie einfach das Programm.
- Eine negative Ganzzahl bedeutet, dass viele Zeichen vom Ende entfernt sind. Ja, das bedeutet , dass
-0als unterschiedlich ist0, und-1ist die zweitletzte Zeichen. - Geben Sie für diesen Befehl nichts aus.
D- Array sichern- Formatiert wie
1, 2, 3, 4, 5 - Wenn es sich um ein Array handelt
1, 2, 3, 0, 0, 0, 0, 0, ..., wird nur ausgegeben1, 2, 3. D(a positive integer) (a positive integer)- Dump alle Array-Elemente zwischen diesen beiden Positionen (einschließlich)
- Formatiert wie
(a positive integer)- Ausgabe des aktuell an dieser Array-Position befindlichen ElementsP- den Index des BF-Zeigers ausgeben (das, was Sie mit>und ändern<).
Zeigen Sie die Eingabeaufforderung an, wenn das Programm Eingaben anfordert "I> ". (Sie können jeweils ein Zeichen eingeben.)
Wenn es etwas ausgibt, zeigen "O> " + (the output). Mehrere Ausgaben zwischen Befehlen müssen miteinander verkettet werden (dh Sie können nicht > G-0 O> H O> e O> l O> l O> o ..., es muss sein > G-0 O> Hello, World!).
Geben Sie "Fertig" aus und beenden Sie das Programm, sobald Sie das Programmende erreicht haben.
Probelauf:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
> 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
Probelauf, der das Durchlaufen von Schleifen und die PAnweisung zeigt (berechnet 3*2+1)
+++[>++<-]>+
> S3
3
> L
v
+++[>++<-]>+
> S3
6
> L
v
+++[>++<-]>+
> P
1
> S3
9
> L
v
+++[>++<-]>+
> S
3
> L
v
+++[>++<-]>+
> D
2, 2
>
Probelauf mit 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
Das ist Code-Golf , also gewinnt der kürzeste Code.