당신의 도전은 다음과 같은 입력을받는 것입니다 (Hello World 프로그램) :
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
그리고 프롬프트를 출력하십시오 ( "> "
) :
>
그러면 사용자는 프롬프트에서 아무 것도 입력 할 수 있습니다. 간단한 디버거에는 다음 명령이 있어야합니다.
S
-단계L
스테핑 후 현재 위치를 출력하십시오 (참조 ).S(a positive integer)
-그 많은 공간을 단계
L
-위치- "위치"라는 용어는 항상 프로그램 내 위치 (예 : 명령 포인터)를 나타냅니다.
이 형식은 다음과 같습니다.
v +++++++[>+++++++<-]>.
이것은 프로그램의 현재 위치가 세 번째임을 의미합니다
+
.
G(an integer)
- 이동- 즉, 해당 위치에 도달 할 때까지 계속 스테핑합니다. 프로그램의 끝에 도달 한 후 프로그램에 도달하지 못한 경우 프로그램을 종료하십시오.
- 음의 정수는 끝부터 많은 문자를 의미합니다. 예,이 방법
-0
과 다른0
, 그리고-1
마지막 문자까지 초입니다. - 이 명령에 대해 아무것도 출력하지 마십시오.
D
-덤프 배열- 같은 형식
1, 2, 3, 4, 5
- 배열이
1, 2, 3, 0, 0, 0, 0, 0, ...
이면 출력 만됩니다1, 2, 3
. D(a positive integer) (a positive integer)
-두 위치 사이의 모든 배열 항목을 덤프합니다 (포함).
- 같은 형식
(a positive integer)
-현재 해당 배열 위치에있는 항목을 출력P
-BF 포인터의 색인을 출력합니다 (>
및로 변경 한 것<
).
프로그램이 입력을 요청하면 프롬프트를 표시하십시오 "I> "
. (한 번에 한 문자 씩 입력 할 수 있습니다.)
무언가를 출력하면 show "O> " + (the output)
. 명령 사이의 다중 출력이 서로 연결되어 있어야합니다 (당신이 할 수없는 즉 > G-0 O> H O> e O> l O> l O> o ...
, 그것은이어야한다 > G-0 O> Hello, World!
).
프로그램의 끝에 도달하면 "완료"를 출력하고 종료하십시오.
샘플 실행 :
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
> 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
루프와 스테핑을 통한 스테핑을 보여주는 샘플 실행 P
(계산 3*2+1
)
+++[>++<-]>+
> S3
3
> L
v
+++[>++<-]>+
> S3
6
> L
v
+++[>++<-]>+
> P
1
> S3
9
> L
v
+++[>++<-]>+
> S
3
> L
v
+++[>++<-]>+
> D
2, 2
>
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
이것은 code-golf 이므로 가장 짧은 코드가 승리합니다.