将字符串列表展开为2D坐标

时间:2015-08-25 22:03:25

标签: python string list befunge

我正在尝试用Python编写Befunge解释器,我现在的问题是p命令。基本上,我有一个字符串列表,它是文件的每一行,我使用2D坐标系来跟踪我的位置。外部列表为y,每个字符串中的位置为x

问题是:p命令弹出坐标和堆栈外的值。然后将ASCII字符对应于该位置的值。不幸的是,使用Python,列表和字符串很难通过索引扩展。我需要最有效的方法来扩展列表及其中的字符串以适应更新的数据。由于两个原因,我不能将它预先扩展到一定的大小:理论上无限的内存分配(Turing-completeness需要)和程序边缘的包装(如果它没有扩展超过该边缘)(预扩展删除)能够有效地做到这一点。)

TL; DR:我需要找到最好/最有效的方法来扩展列表及其中的所有字符串以达到并包含特定的2D坐标(外部列表是y,内部列表是x,即{{1因为有几个复杂且难以解释的原因,我不能预先分配它。

由于我似乎不太清楚,prog[y][x]命令直接修改了运行的Befunge代码。因此,我无法将数据存储在程序本身之外,因为程序需要能够访问并在必要时运行它(正如我所说,Befunge很奇怪)。

1 个答案:

答案 0 :(得分:0)

经过一番商议后,我决定使用@ dawg的想法,但是方式略有不同;基本上整个程序都是一个元组键dict,这样程序可以随时通过坐标轻松修改。谢谢你的帮助!