我正在尝试用Python编写Befunge解释器,我现在的问题是p
命令。基本上,我有一个字符串列表,它是文件的每一行,我使用2D坐标系来跟踪我的位置。外部列表为y
,每个字符串中的位置为x
。
问题是:p
命令弹出坐标和堆栈外的值。然后将ASCII字符对应于该位置的值。不幸的是,使用Python,列表和字符串很难通过索引扩展。我需要最有效的方法来扩展列表及其中的字符串以适应更新的数据。由于两个原因,我不能将它预先扩展到一定的大小:理论上无限的内存分配(Turing-completeness需要)和程序边缘的包装(如果它没有扩展超过该边缘)(预扩展删除)能够有效地做到这一点。)
TL; DR:我需要找到最好/最有效的方法来扩展列表及其中的所有字符串以达到并包含特定的2D坐标(外部列表是y,内部列表是x,即{{1因为有几个复杂且难以解释的原因,我不能预先分配它。
由于我似乎不太清楚,prog[y][x]
命令直接修改了运行的Befunge代码。因此,我无法将数据存储在程序本身之外,因为程序需要能够访问并在必要时运行它(正如我所说,Befunge很奇怪)。
答案 0 :(得分:0)
经过一番商议后,我决定使用@ dawg的想法,但是方式略有不同;基本上整个程序都是一个元组键dict,这样程序可以随时通过坐标轻松修改。谢谢你的帮助!