Twoim wyzwaniem jest takie wejście (program Hello World):
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
I wyślij monit (który będzie "> "
):
>
Użytkownik może następnie wprowadzić dowolne polecenie. Twój prosty debugger musi mieć następujące polecenia:
S
- krok- Podaj bieżącą lokalizację (patrz
L
) po wykonaniu kroku. S(a positive integer)
- krok tyle spacji
- Podaj bieżącą lokalizację (patrz
L
- Lokalizacja- Termin „lokalizacja” zawsze odnosi się do miejsca, w którym się znajdujesz w programie (tj. Wskaźnika instrukcji).
Sformatowany w ten sposób:
v +++++++[>+++++++<-]>.
Oznacza to, że bieżąca lokalizacja programu znajduje się na trzecim miejscu
+
.
G(an integer)
- iść do- Oznacza to, że stój krok do momentu dotarcia do tej lokalizacji. Jeśli dotrzesz do końca programu i jeszcze go nie dotarłeś, po prostu wyjdź z niego.
- Ujemna liczba całkowita oznacza, że wiele znaków od końca. Tak, oznacza to, że
-0
jest inny niż0
i-1
jest drugim do ostatniego charakteru. - Nie wypisuj niczego dla tego polecenia.
D
- tablica zrzutu- Sformatowane jak
1, 2, 3, 4, 5
- Jeśli tablica jest
1, 2, 3, 0, 0, 0, 0, 0, ...
, tylko wyjście1, 2, 3
. D(a positive integer) (a positive integer)
- zrzuć wszystkie elementy tablicy między te dwie pozycje (włącznie)
- Sformatowane jak
(a positive integer)
- wypisuje element aktualnie w tej pozycji tablicyP
- wypisuje wskaźnik wskaźnika BF (rzecz, którą zmieniasz za pomocą>
i<
).
Gdy program zażąda danych wejściowych, wyświetl monit "I> "
. (Możesz wprowadzić jeden znak na raz.)
Kiedy coś wyjdzie, pokaż "O> " + (the output)
. Wiele wyjść między poleceniami musi być połączonych razem (tzn. Nie można tego zrobić > G-0 O> H O> e O> l O> l O> o ...
, musi być > G-0 O> Hello, World!
).
Wyjście „Gotowe” i wyjście po osiągnięciu końca programu.
Przykładowy przebieg:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
> 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
Przykładowy przebieg pokazujący przechodzenie przez pętle i P
instrukcję (oblicza 3*2+1
)
+++[>++<-]>+
> S3
3
> L
v
+++[>++<-]>+
> S3
6
> L
v
+++[>++<-]>+
> P
1
> S3
9
> L
v
+++[>++<-]>+
> S
3
> L
v
+++[>++<-]>+
> D
2, 2
>
Przykładowy przebieg pokazujący operacje we / wy
>+[>,---------------------------------]<[<]>[>.]
> G37
I> H
I> e
I> l
I> l
I> o
I> !
> D
0, 39, 68, 75, 75, 78
> G-0
O> 'DKKN
Done
To jest kod-golf , więc wygra najkrótszy kod.