问题标签 [befunge]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1063 浏览

befunge - How to compile a program in Befunge-93?

How do I save and compile a program in Befunge-93? What file extension do I need to save the file as (like fileName.what)? Then how do I compile it?

0 投票
1 回答
251 浏览

esoteric-languages - 如果执行达到程序的限制,Befunge 会发生什么?

我找不到这个问题的答案......是否存在“周期性边界条件”?即是否在对面站点继续执行?还是执行离开程序是非法的?

0 投票
3 回答
837 浏览

compilation - 为什么 Befunge 被认为难以编译?

Befunge 的设计目标之一是难以编译。但是,它很容易解释。可以用传统语言编写解释器,比如 C。要将 Befunge 程序翻译成等效的机器代码,可以将 Befunge 代码硬编码到 C 解释器中,然后将生成的 C 程序编译为机器代码。或者“编译”是否意味着排除这种翻译的更受限制的东西?

0 投票
1 回答
81 浏览

random - Befunge RNG——为什么我得到这么多的2?

Befunge 在代码高尔夫之外没有太多使用,但我想尝试学习它。我从 Wikipedia 获得了一个随机数生成器,并决定对其进行修改以使其结束。这是我所拥有的:

而且我想知道为什么它倾向于生成数字 2 很多,通常是重复的。只是口译员吗?

0 投票
1 回答
197 浏览

esoteric-languages - Befunge 98:来自标准输入的 eof

当遇到 EOF 时, befunge-98~中的指令的预期行为是什么?

直观地说,它应该将 -1 放在堆栈上,但我发现在这方面有一些变化:

  • Befunge-93 JS解释器遵循“直观”的方式。(以下脚本输出:“ -1 -1 97”)
  • Michael Riley 的解释器将 EOF 视为 LF 字符(ASCII 10),并在读取额外(不存在的)字符时将其置于顶部。(输出:“ 10 10 97”)
  • Matti Niemenmaa 的解释器也将 EOF 视为 LF,但在读取额外字符时继续等待用户输入。(无输出)

这是测试:

使用 test.fg 如下(读取三个字符并输出它们的代码):

实际上是否存在正确处理 EOF 的解释器(即与 LF 不同)并且仍然支持完整的 befunge-98 规范?

0 投票
1 回答
148 浏览

befunge - Befunge 迭代多条指令

在 Befunge-98 中,k操作员允许我这样做

这将是2110. 我正在寻找一种(短)方法来迭代多个指令,例如,我希望输出为2121- 就好像k运算符迭代12了两次,而不仅仅是1.

有没有办法让k运营商做到这一点?如果不是,那么重复序列n时间的最短方法是什么——不使用p,g_or |

0 投票
2 回答
229 浏览

stack - 如何弹出堆栈中的第 N 个项目 [Befunge-93]

如果您有 befunge 程序321&,您将如何访问第一项(3)而不丢弃后两项?

该指令\允许一个人切换前两项,但这并没有让我更接近最后一项......

我正在使用的当前方法是使用p命令将整个堆栈写入程序存储器,以便到达最后一项。例如,

但是,我觉得这并不像它应该的那样优雅......没有技术将堆栈上的第一项弹出为 N,从堆栈中弹出第 N 个项并将其推到顶部?

(否是一个完全可以接受的答案)

0 投票
3 回答
245 浏览

random - 在 Befunge 中生成随机数

我想在 Befunge 中生成一个随机数,从 0 到 n,其中 n 是任意数。我该怎么做呢?
我想试试这个(这个例子有 2 个链接的代码块来展示它是如何工作的):

并根据需要重复,但我需要 n 个该代码块的副本。rand(0, 10)有没有更好的方法可以像其他语言一样生成随机数?

0 投票
1 回答
107 浏览

python - 将字符串列表扩展到二维坐标

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

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

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

看起来我不太清楚,该p命令直接修改了正在运行的 Befunge 代码。因此,我不能将数据存储在程序本身之外,因为程序需要能够在必要时访问和运行它(正如我所说,Befunge 很奇怪)。

0 投票
0 回答
57 浏览

python - 为 Befunge-98 解释器导入函数列表的方法

我找到了一个非常棒的 Befunge 解释器,并正在尝试从文件中添加简单的指纹导入及其相应的功能。我当前的代码为每个功能使用类,然后在指纹下分配功能,然后在字母下分配。这就是原始代码和我当前代码的工作方式。我希望将一个名为fingerprint.py 的文件作为模块导入,然后运行fingerprint.initiate() 或类似的东西来将指纹添加到指纹字典中。它在解释器文件中,我正在尝试使用代码:

将指纹数据添加到字典中,它不允许我这样做,说它有语法错误。我不知道应该如何实例化这些类。完整的代码在这里非常感谢任何答案,我很想在我即将发布的代码中提及你。谢谢,祝你有美好的一天。