解析命令+ 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 减一,因为你每次都会自动递增它。)