Top / Braincunt
Braincunt

目次

About

基本仕様

命令

標準命令(Brainfuck互換)

>

ポインタを(ベクトルの方向に対し)インクリメントする。

<

ポインタを(ベクトルの方向に対し)デクリメントする。

+

ポインタが指す値をインクリメントする。

-

ポインタが指す値をデクリメントする。

.

ポインタが指す値を出力する。

,

1バイトを入力してポインタが指す値に代入する。

[

ポインタが指す値が0なら、対応する ] の直後までジャンプする。

]

ポインタが指す値が0でないなら、対応する [ にジャンプする。

標準命令(Braincunt)

r

ベクトルを左回りに90°ローリング回転する。

R

ベクトルを右回りに90°ローリング回転する。

y

ベクトルを左回りに90°ヨーイング回転する。

Y

ベクトルを右回りに90°ヨーイング回転する。

p

ベクトルを後回りに90°ピッチング回転する。

P

ベクトルを前回りに90°ピッチング回転する。

拡張命令(ビット演算)

|

ポインタが指す値と次のポインタが指す値をOR演算し、次のポインタに値を入れる。
また、ポインタはインクリメントされる。

&

ポインタが指す値と次のポインタが指す値をAND演算し、次のポインタに値を入れる。
また、ポインタはインクリメントされる。

^

ポインタが指す値と次のポインタが指す値をXOR演算し、次のポインタに値を入れる。
また、ポインタはインクリメントされる。

~

ポインタが指す値をNOT演算する。

拡張命令(算術演算)

:

ポインタが指す値と次のポインタが指す値を加算し、次のポインタに値を入れる。
また、ポインタはインクリメントされる。

;

ポインタが指す値と次のポインタが指す値を減算し、次のポインタに値を入れる。
また、ポインタはインクリメントされる。

*

ポインタが指す値と次のポインタが指す値を乗算し、次のポインタに値を入れる。
また、ポインタはインクリメントされる。

/

ポインタが指す値と次のポインタが指す値を除算し、次のポインタに値を入れる。
また、ポインタはインクリメントされる。

%

ポインタが指す値と次のポインタが指す値を剰余算し、次のポインタに値を入れる。
また、ポインタはインクリメントされる。

拡張命令(コピー・交換)

=

ポインタが指す値を次のポインタが指す値にコピーする。
また、ポインタはインクリメントされる。

`

ポインタが指す値と次のポインタが指す値を交換する。
また、ポインタはインクリメントされる。

拡張命令(軸移動)

a

ポインタをX軸方向に対しインクリメントする。

A

ポインタをX軸方向に対しデクリメントする。

b

ポインタをY軸方向に対しインクリメントする。

B

ポインタをY軸方向に対しデクリメントする。

c

ポインタをZ軸方向に対しインクリメントする。

C

ポインタをZ軸方向に対しデクリメントする。

コメント拡張

#

以降から次の改行コードまでをコメントとして読み飛ばす。

Braincunt.exe について

About

バージョン履歴

0.2.1 (2010.11.06)

ブレークモード実装。
シリアライズ化のフォーマットにデータ項目追加(後方互換)。

0.2.0 (2010.11.05)

画像のピクセルデータ読み込み、書き出し機能実装。

0.1.0 (2010.11.02)

基本機能実装。

ダウンロード

起動方法

コマンドプロンプトから起動します。
ダブルクリックで直接起動もできます。
ファイルをD&Dで起動した場合、ファイルをBraincuntのソースファイルとして読み込みます。

コマンドラインオプション

-h [ --help ]           Print out program usage. (this message)

ヘルプを表示する。

-i [ --input ] arg      Input file. (source code)

入力するソースファイルを指定する。複数指定可能。
接頭辞の付かないオプションは--input指定と等価。

-break [ --break ]      Break mode (execution control)

ブレークモードで実行する。
ブレークモードでは、プログラムが改行コードを読んだとき実行が一時停止する。

-p [ --pure ]           Pure Brainfuck operation. (command restriction)

Brainfuck互換の命令のみ有効にする。
他の拡張オプションは無視される。

--ext-bitwise           Bitwise operation. (extended command)

拡張命令(ビット演算)を有効にする。

--ext-arithmetic        Bitwise operation. (extended command)

拡張命令(算術演算)を有効にする。

--ext-copyswap          Copy-swap operation. (extended command)

拡張命令(コピー・交換)を有効にする。

--ext-axis            Axis operation. (extended command)

拡張命令(軸移動)を有効にする。

--ext-comment           Comment process. (remove from code)

コメント拡張を有効にする。

--load-xml arg          Load serialized xml file. (braincunt engine)

XML形式でシリアライズされた状態を読み込む。
他のオプションはこれを上書きする。

--load-text arg         Load serialized text file. (braincunt engine)

テキスト形式でシリアライズされた状態を読み込む。
他のオプションはこれを上書きする。

--load-binary arg       Load serialized binary file. (braincunt engine)

バイナリ形式でシリアライズされた状態を読み込む。
他のオプションはこれを上書きする。

--pic-input arg         Input file. (picture)

画像のピクセルデータをバッファに読み込む。
現在の実装では、PNG形式のみ対応。

--pic-color arg (=rgba) Pixel order. (picture)

画像のピクセルデータをバッファに読み込み時、ピクセルの色要素の順序を指定する。
現在の実装では、RGBA(rgba)とRGB(rgb)に対応。ビット深度は8で固定。

--pic-output arg        Output file. (picture)

プログラム終了時、バッファの内容をピクセルデータとして画像に書き出す。
現在の実装では、PNG形式のみ対応。

コマンド

i=[input code]

実行コードを入力する。コードは既存のコードの後ろに追加される。

p=[print code]

既存のコードを表示する。

s=[save code]

既存のコードをファイルに書き出す。

q=[quit]

プログラムを終了する。

r=[reset]

エンジンの状態をリセットする。拡張オプションはそのまま。

sxml=[save xml]

XML形式でシリアライズした状態をファイルに書き出す。

stxt=[save text]

テキスト形式でシリアライズした状態をファイルに書き出す。

sbin=[save binary]

バイナリ形式でシリアライズした状態をファイルに書き出す。

pout=[pic output]

バッファの内容をピクセルデータとして画像に書き出す。

作業フォルダ

ソースファイルが読み込まれた場合、ソースファイルのあるフォルダが作業フォルダになる。
複数のソースが指定された場合、最初に読み込まれたソースファイルのあるフォルダになる。
ソースファイルが読み込まれなかった場合、実行ファイルのあるフォルダになる。

データ表示

total step: num

実行された総ステップ数。命令として無効なトークンを含む。

dbuffer:

データバッファの内容。

z: {size-pivot}

{ Z軸方向のデータサイズ - インデックス0の位置 }

[z] y: {size-pivot}

[z座標] { Y軸方向のデータサイズ - インデックス0の位置 }

[z][y] x: {size-pivot} |hex...

[z座標][y座標] { X軸方向のデータサイズ - インデックス0の位置 }
データ列中で、インデックス0の位置に * マークが付く。

dpointer: [x, y, z]

ポインタの指す位置。

front: +/- x|y|z

ポインタの移動すべき前方を指すベクトルの軸方向。

head: +/- x|y|z

ポインタの主観位置の上方を指すベクトルの軸方向。

画像データの扱い