問題タブ [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」や「$」などの特定の文字で停止したいのですが、1 文字の NULL は頭のインタープリターに読み取れないためです。これまでのコードは次のとおりです。
入力が NULL になること[>,]
はあり得ないため、このループは決して終了しません。
では、事前に指定された終了文字に到達した場合にこのループを終了する if ステートメントを挿入するにはどうすればよいでしょうか?
brainfuck - イデオンの頭脳ファックの何が問題になっていますか?
明らかに、brainfuck についての私の理解に何か問題があるか、ideone.com の bf インタープリターに何か問題があります。
(reads two characters and print them) のような単純なコードを入力する,.,.
と、「bff: out of memory (871638280)」というエラーが表示されます。なぜ私はこれを得るのですか?
注: 本当の問題は、私が SPOJ の問題を解決しようとしているということです。インターネット上で見つけたブレインファック インタープリターで動作する一部のコードは、SPOJ と ideone.com では動作しません。
square-bracket - 角括弧効果がわかりません
私はブレインファックの学習を始めたばかりで、ハローワールドの例しかありません。角かっこが何に使用されるかについて質問があります。
例:
これが「ハローワールド」というプログラムです。[ ] がある理由がわかりませんが-
、+
中かっこが次のように書かれていることをどこかで読みました。
しかし、この情報を持っていても、なぜここにあるのかわかりません。
私はphp/C/POSIX/Javaに堪能ですが、ここではこれを理解していません。
comments - Brainfuck でピリオド (.) を含む「コメント」を書き込む方法は?
Brainfuck でピリオド ('.') を含むコメントを行う方法はありますか?
基本的に、コマンドの 1 つではないすべての char を使用できることはわかっていますが、それは無視されますが、ファイルの先頭にあるコメントにバージョン番号を入れたいと思います。これにはピリオドが含まれます。
perl - このブレインファック プログラムで Perl エラーが発生するのはなぜですか?
次の Brainfuck プログラム ( source ) を実行すると...
...私が使用するインタープリター(Perlで書かれた小さなもの)を介して、本来の動作をしません(「永遠にループし、スペース(32)で始まる各文字をASCIIbeticalで出力することがわかりますorder")、代わりに出力してループします:
はい、コードには冗長性が含まれています。何よりも、Haskell から自動生成されます。
regex - grepを使用して奇数回の出現と交互の構造を見つける
300,000 行のブレインファックコードを含むファイルを grep で検索して、いくつかの構造を探す必要があります。
最初の質問
以下の最初のコードのようなコードを見つける必要があります。交互の + - 構造を探しています。他の文字は区切り文字として表示されます。+-+ または -+- も正しいです。以下の例のように、] の後に検索を開始します。
2 番目の質問
以下の最初のコードのようなコードを見つける必要があります。奇数回の出現を探しています - <> の連続したペアと空の <> の間は偶数と見なされるため、正しくありません。
grep のみが許可されていることに注意してください。最初に行った texteditor は使用しない場合があります。
javascript - JavaScript で Brainf*ck ループを実装する
命令ポインタi
とptr
データポインタも同様です。私はこれを正しくしようとしています:
[ - データ ポインターのバイトがゼロの場合、命令ポインターを次のコマンドに進める代わりに、一致する ] コマンドの後のコマンドにジャンプします。
] - データ ポインターのバイトがゼロ以外の場合、命令ポインターを次のコマンドに移動する代わりに、一致する [ コマンドの後のコマンドにジャンプして戻します。
すべてが機能しますが、ループを使用して Hello World の例を試すと、間違った出力が生成され、どこか[
で]
めちゃくちゃになります。
ループを修正する方法について何か提案はありますか?
編集
これは、提案されたネスト ハンドラーを使用して変更されたif
s です。Hello World の例が適切に実行されるようになりました。
brainfuck - ブレインファックの合計数
コードの先頭にある番号 k だけで、brainfuck で 1+2+3+...+k の合計を計算できるかどうか知りたいですか?
たとえば、次のように 1+2+3 を行うことは可能ですか?
+++>
(ここで、コードは 2 つを作成し、それを 3 つに追加し、1 つを作成して追加します)
私はこれを行うことができるので:+++>++>+[<<+>>-]<[<+>-]<
しかし、k=10000の場合、どうすればこれを行うことができますか?
algorithm - Brainfuck の Divmod アルゴリズム
誰かこのコードを説明してくれませんか? 私はそれが何をするのか理解していますが、それがどのように機能するのか理解していません。