問題タブ [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.
c - BrainFuck の実装上の問題:
私は座って、BrainFuck を実装しようとしました。構文はかなり単純なようです。ばかげたことを機能させるのに苦労しています。私はこれをしばらくしてきました。睡眠が必要だと認めます。多分それがすべての問題です。インタプリタは何も出力していません。問題は単純なものだと確信しています。そして、このプログラムの方向性をよりよく把握した後、いくつかの関数呼び出しをモジュール化する必要があることを知っています。出力が得られないのはなぜですか?
main.c
list.h
list.c
test
ブレインファックの「ハローワールド」です
c - Cのbrainf*ckインタープリター - ブラケットループの処理
私はCでbrainfuckインタープリターを書いています.
ブラケット ( []
) ループが正しく機能していないようです。
編集:このコードは現在機能しています
これは、ブラケット ループを制御するコードです。
プログラムは、bf コードを含む文字列から読み取っています。文字ごとに、switch ステートメントの適切なセクション (各コマンドのケースを含む) が呼び出されます。
']' コマンドが呼び出されると、プログラムはしませんループの先頭に戻ります。
助けてくれてありがとう!
編集:以下に指摘されているいくつかのバグを修正した後、実際の問題であることが明らかになったものを示すために更新しました。Ubuntu 14.04 で gdb デバッガーを使用しています。
編集(再度):プログラムは現在機能しており、以下で利用できます。
編集(再び(再び)):以下のコメントで述べたように、最終的にはさまざまなバグが問題を引き起こしたため、自分の質問に答える単一の答えがありませんでした. 誰かが興味を持っている場合に、ブラケット ループを処理する 1 つの方法の例として、これを残しました。
コード全体は、 https://github.com/underscorejho/bfiの GitHub で表示できます。
c - C印刷のトラブルでBrainfuckインタープリター
私は C で非常に単純なブレイン インタープリターをコーディングしようとしています。私が理解していることで特定の文字をアウトプリントしようとすると、問題が発生します。
これはすべて私のコードです:
これが問題の入力です (実際の入力では他のテキストを避けようとしました (ここにあるものはすべて入力の一部であり、不要なテキストも含むことに注意してください)。出力をテキスト ファイルを作成し、定義済みのテキストと比較すると、テキスト ファイルがバイナリ ファイルとして出力され、その理由がわかりません。問題は[
、私の処理方法に隠されている可能性があり]
、それらのない以前のテスト
誰かからの提案として、私はこれを行いました:
ただし、問題はその前のテストにまで及んでいます。それらをバイナリファイルとして出力することさえあるため、コードとコードに問題があると考えている[
ため]
、不要な文字を適切に印刷するフィールドをインクリメントしません。これがテストにどのように拡張されたかそれらがなければ、その周りに別のループを配置するときだけ、私にはわかりません。
編集: 上記のループの問題は、while ループが通過しないことではありません。問題は、スイッチに入らないことです。その解決策はありますか?
c - Brainf*ck でループを処理する
Brainfuck でこのボトル型のコードを使用して、C で Brainfuck インタープリターをテストしてみました。
そして、'99 bottle of beers on the wall' の曲全体を 99 から 1 に出力する代わりに、99 から 96 のボトルまでの詩だけを出力しました。Brainfuck コードまたはインタープリターのループに何か問題がありますか?
ここに私のCコードがあります:
brainfuck - ブレインファック。どのように回文をチェックしますか?
問題は、 Brainfuckを使用してシーケンスが回文であるかどうかを確認することです。
入力は一連の数値です
回文でない場合は 0 を出力し、そうでない場合は 1 を出力します。
私には 1 つのアイデアがあります。 たとえば、シーケンス1 2 3 2 1があるとします。配列の最初のセルを変数に記憶できます (操作'!'を使用してこれを行います)。
- 次に、1 を 0 に変更します (操作'0'を使用してこれを行います)。配列は 0 2 3 2 1 になります。
- 次に、0 になるまで配列の最後に移動します (これは '>[>]'を使用して行います)。
- 次に、変数から数値を取得し、シーケンス0 2 3 2 1 1 を取得します。
- 次のステップは、最後の 2 つの数字を比較することです。それらが等しい場合は、最初からアルゴを続行し、そうでない場合は何かを行います...
最後のステップを実装する方法がわかりません。