问题标签 [brainfuck]
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.
if-statement - 在 Brainfuck 中创建 if(x==y) 语句
所以我正在开发一个读取文件然后再次输出的程序,但是我无法让程序在文件末尾停止输入。我希望它停在一个特定的字符上,比如 '0' 或 '$' 或任何其他字符,因为我的 Brainf 解释器无法将一个字符 NULL 读入。这是到目前为止的代码:
问题开始于[>,]
输入永远不会是 NULL 这个循环永远不会结束。
那么如何插入一个 if 语句来终止这个循环,如果它到达一个预先指定的结束字符呢?
brainfuck - ideone上的brainfuck有什么问题?
显然,我对 Brainfuck 的理解有问题,或者 ideone.com 上的 bf 解释器有问题。
通过输入简单的代码,.,.
(读取两个字符并打印它们),我得到一个错误 "bff: out of memory (871638280)" 。为什么我会得到这个?
注意:真正的问题是我正在尝试解决 SPOJ 上的问题,而我在互联网上找到的一些适用于 Brainfuck 解释器的代码在 SPOJ 和 ideone.com 上不起作用。
square-bracket - 我不明白方括号的效果
我刚开始学习brainfuck,我只是在你好世界的例子中。我有一个问题,方括号是用来做什么的?
例子:
这是程序“hello world”。我不明白为什么有 [ ] 我明白-
,+
但我在某处读到大括号是:
但即使我有这些信息,我也不明白为什么会有这个。
我精通 php/C/POSIX/java,但在这里我不明白这一点。
goto - Brainf 中的 GOTO 指令***
有一个bf 的扩展版本,它有一条goto
指令,?
.
我知道,理论上,应该可以在 bf 的经典 8 指令版本中模拟 goto。我怎么能在实践中做到这一点?是否有现有的 bf goto 模式或算法?有没有办法将 goto?
指令转换为没有 goto 指令的 bf 版本?
?
comments - 如何在 Brainfuck 中编写包含句点 (.) 的“评论”?
有没有办法在 Brainfuck 中进行包含句点('.')的评论?
我知道我基本上可以使用不是命令之一的每个字符,并且它被忽略,但我想在文件顶部的注释中放置一个版本号,其中包含一个句点。
perl - 为什么我在这个brainfuck 程序中出现Perl 错误?
当我运行以下 Brainfuck 程序(源)...
...通过我使用的解释器(一个用 Perl 编写的小解释器),它并没有做它应该做的事情(“你会发现它永远循环并打印出每个字符,从空格 (32) 开始,以 ASCIIbetical order"),而是打印出来,循环:
是的,代码包含冗余。它是由 Haskell 自动生成的。
regex - 使用 grep 查找奇数次出现和交替构造
我必须使用 grep 在一个包含 300 000 行Brainfuck代码的文件中搜索几个结构。
第一个问题
我需要找到类似下面第一个代码的代码,我正在寻找交替的 + - 结构,其他字符被视为分隔符,+-+ 或 -+- 也是正确的。我们在 ] 之后开始搜索,如下例所示
第二个问题
我需要找到像下面的第一个代码这样的代码,我正在寻找奇数的出现次数 - 在连续的一对 <> 和一个空的 <> 之间被视为偶数,所以不正确。
请注意,只允许使用 grep,我们可能不会使用我首先使用的文本编辑器。
javascript - 用 JavaScript 实现 Brainf*ck 循环
i
指令指针和ptr
数据指针也是如此。我正在努力解决这个问题:
[ - 如果数据指针处的字节为零,则不将指令指针向前移动到下一个命令,而是将其向前跳转到匹配的 ] 命令之后的命令。
] - 如果数据指针处的字节非零,则不将指令指针向前移动到下一个命令,而是将其跳回到匹配的 [ 命令之后的命令。
一切正常,但尝试使用循环的 Hello World 示例会产生错误的输出,[
并且]
在某处搞砸了。
关于如何修复循环的任何建议?
编辑
以下是修改后if
的 s 以及建议的嵌套处理程序,它现在可以正确执行 Hello World 示例。
brainfuck - Brainfuck中的数字总和
我想知道是否可以仅用代码开头的数字 k 来计算 Brainfuck 中 1+2+3+...+k 的总和?
例如,是否可以像这样执行 1+2+3:
+++>
(这里的代码创建一个两个加上三个,创建一个并添加它)
因为我可以这样做:+++>++>+[<<+>>-]<[<+>-]<
但是如果 k=10000 我该怎么做呢?
algorithm - Brainfuck 中的 Divmod 算法
有人可以向我解释这段代码吗?我明白它的作用,但我不明白它是如何工作的。