Joeは平均的なBF開発者です。彼は上司から電話を受けたときに、リポジトリへのコードの変更をチェックインしようとしています。「ジョー!新しいクライアントのマシンが壊れています!ブレインファックインタープリターは、プログラムの実行前にすべてのセルをランダムな値に設定します。修正する時間がないので、コードで処理する必要があります。」ジョーはそれについてはあまり考えていません。上司が再び彼に割り込んだときに、最初の100万個のセルをゼロに設定するプログラムを書こうとしています。できるだけ小さくしてください。」今、あなたは貧しいジョーを助けなければなりません!
仕様書
- あなたは入力としていくつかの有効なbrainfuckコードを取得します
- プログラムはコードを変更して、ランダム化されたbrainfuckインタープリターで機能するようにします
- つまり、プログラムを実行する前に、セルを任意の値に設定できます。
- 新しいプログラムは、初期条件に関係なくまったく同じ動作をする必要があります。
- インタープリターは、ラッピングを含む最大セル値が255で、テープの長さが無限になります。
得点
あなたのスコアは、10回のバイト単位でのコンパイラのサイズに加えて、テストケースのサイズの合計。最も低いスコアが勝つことは明らかです。テストケースの最適化を緩和するために、疑わしい場合はテストケースを変更する権利を留保しており、おそらく勝者を選ぶ前に変更します。
テストケース
(私はesolangsページとこのWeb ページからこれらを入手しました:http : //www.hevanet.com/cristofd/brainfuck/)。最後のテストケースについては@Sparrにも感謝します。
- こんにちは世界:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
- 逆入力:
>,[>,]<[.<]
- 2の累乗(無限ストリーム):
>++++++++++>>+<+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<]>.>[->[ <++>-[<++>-[<++>-[<++>-[<-------->>[-]++<-[<++>-]]]]]]<[>+<-]+>>]<<]
- 10000未満の正方形:
++++[>+++++<-]>[<+++++>-]+<+[>[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+>>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<]<<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<-]
- フィボナッチストリーム:
>++++++++++>+>+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<<]>.>>[[-]<[>+<-]>>[<<+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<<<-[>+<-]]]]]]]]]]]+>>>]<<<]
- 入力までのASCIIシーケンス:(
,[.[>+<-]>-]
これは入力に基づいてさまざまなセル番号を必要とします)