解析命令+ BF 变体中的输入- Python 2.7.12
Parsing commands+input in BF variant- Python 2.7.12
我正在修改 Python BrainF*ck 解释器来制作我自己的变体。我对 Python 非常缺乏经验,需要一些帮助。在 code 中,我将 # 以及 0-9 放入过滤器并添加
if command == "#":
cellptr =
添加到命令列表。我希望解释器读取 # 和它后面的任何数字字符串。当字符串结束时,我希望将变量 cellptr
更改为字符串。我该怎么做呢?这样做的目的是使用命令立即切换到任何单元格(即使它并不真正符合 BF 的全部要点)。示例代码:
+>++>+++#1
单元格一加 1,单元格二加 2,单元格三加 3,然后跳回单元格一。
您只需将执行此操作的方式转换为通用算法:迭代代码字符串的其余部分以查找数字,直到您到达数字末尾或代码字符串末尾。然后,将单元格指针设置为新位置:
if command == "#":
num = 0
codeptr += 1
while codeptr < len(code) and code[codeptr] in '0123456789':
num = num * 10 + int(code[codeptr])
codeptr += 1
cellptr = num
codeptr -= 1
(我已经将 codeptr
减一,因为你每次都会自动递增它。)
我正在修改 Python BrainF*ck 解释器来制作我自己的变体。我对 Python 非常缺乏经验,需要一些帮助。在 code 中,我将 # 以及 0-9 放入过滤器并添加
if command == "#":
cellptr =
添加到命令列表。我希望解释器读取 # 和它后面的任何数字字符串。当字符串结束时,我希望将变量 cellptr
更改为字符串。我该怎么做呢?这样做的目的是使用命令立即切换到任何单元格(即使它并不真正符合 BF 的全部要点)。示例代码:
+>++>+++#1
单元格一加 1,单元格二加 2,单元格三加 3,然后跳回单元格一。
您只需将执行此操作的方式转换为通用算法:迭代代码字符串的其余部分以查找数字,直到您到达数字末尾或代码字符串末尾。然后,将单元格指针设置为新位置:
if command == "#":
num = 0
codeptr += 1
while codeptr < len(code) and code[codeptr] in '0123456789':
num = num * 10 + int(code[codeptr])
codeptr += 1
cellptr = num
codeptr -= 1
(我已经将 codeptr
减一,因为你每次都会自动递增它。)