モジュール詳細:ブレインファ--

-[--->+<]>---.[------>+<]>--.--[--->+<]>-.+++[->+++<]>.-.-[--->+<]>-.[-->+++<]>+.+.--[--->++<]>.++[->+++<]>.+++++++++.+++.[-->+++++<]>+++.+[----->+<]>.----.+++.--------.-[--->+<]>-.[->+++<]>++.-.+++.-[--->+<]>-.++[--->++<]>.-----------.+++++++++++++.-------.--[--->+<]>--.[->+++<]>++.++++++.--.[->+++<]>-.

  • このモジュールは、「ブレインファ--(Brainf---)」と呼ばれる有名な難解なコーディング言語を改良したものである。これには8種の文字のみ含まれている。各文字については、以下の表を参照する。
  • 「Brainf---」は1次元配列上のポインタ(位置)の移動と、コマンドにより選択中のセルの値を変更することができる。ポインタは0番目から開始し、負の位置への移動や値を負にすることはできない。すべての値は0から開始する。
  • このモジュールにはディスプレーと10個のキーパッド、「CLR」ボタンと「OK」ボタンがある。ステージ数の下2桁は右側の小さい画面に表示される。
  • 無視されないモジュールが解除されるたび、プログラムに新たな文字が表示され、ステージ数が更新される。文字を記録して、プログラムの末尾に追加する。
  • すべての無視されないモジュールが解除された後、画面にはピリオドが表示されステージ数が消滅する。この時、現在の位置におけるセルの値を100で割った余りを入力し、「OK」ボタンを押してモジュールを解除する。間違った数字を入力するとミスが記録される。
  • ピリオドはこれ以前に表示されることもある。この時、現在の位置におけるセルの値を100で割った余りを入力し、別のモジュールを解除する前に「OK」ボタンを押さなければならない。間違った数字を入力したり、送信前に他のモジュールが解除されると、ミスが記録される。
  • 数字を「0」で埋めてはいけない。これを行うとミスが記録される。

以下の表は、この表を指す。

記号 説明
> ポインタを右に1つ移動させる。
< ポインタを左に1つ移動させる(0番目にポインタがある場合は無視する)。
+ 選択中のセルの値を1増加させる。
- 選択中のセルの値を1減少させる(値が0の場合は無視する)。
[ と ] 括弧内の命令は、ループ終了時点で選択中の値が0になるまでループする。
. 選択中のセルの現在の値を出力する。
, ユーザーの入力を受け取り、選択中のセルに格納する。

追記

ループ

ループのオリジナルルールが適用されていても、割当中のメモリスロットの値が超過することを防ぐため、ループ内のコードはx回を超えて実行できない。xは(バッテリーの個数 + 1)である。

カンマ

国家爆弾製造法第28条第6項により、処理担当者はカンマが表示された場合、その値をセルに割り当てることができなくなった。その代わり、選択中のセルに値yを割り当てる必要がある。yを得るには、以下の手順に従う。

  1. 自身の左隣のセルの値を取得する(0番目の場合は右隣のセル)。
  2. 6で割った余りを取得し、1を加算する。
  3. その位置にあるシリアルナンバーの文字を取得する。
  4. それが英字の場合、アルファベット上の位置(A=1, B=2,...)に変換する。
  5. これが値yである。

負の数になる場合

  • 負の位置に移動しようとする場合、左の代わりに右に移動する。
  • 負の値にしようとする場合、減算の代わりに加算する。