您的挑战是要像这样输入(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> "
。(您可以一次输入一个字符。)
输出某些内容时,显示"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
这是代码高尔夫球,所以最短的代码将获胜。