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
-0
als unterschiedlich ist0
, und-1
ist 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 P
Anweisung 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.