打つコード量は増えますが、圧倒的に見やすくなります
サンプル
足し算
def x 1
def y 2
goto x
change = 4
goto y
change = 7
[
goto x
change + 1
goto y
change - 1
]
↓
足し算
>++++>+++++++[<+>-]
# メモリ1に4+7で11が入る
かけ算
def res 1
def a 2
def b 3
def copy1 4
def copy2 5
def copy3 6
def zero 48
goto a
input 0
change - zero
goto b
input 0
change - zero
# copy1へaを移動する
goto a
[
goto copy1
change + 1
goto a
change - 1
]
goto b
[
# copy1からcopy2とcopy3にコピーする
goto copy1
[
goto copy2
change + 1
goto copy3
change + 1
goto copy1
change - 1
]
# resにcopy3足す
goto copy3
[
goto res
change + 1
goto copy3
change - 1
]
# copy2をcopy1へ移動
goto copy2
[
goto copy1
change + 1
goto copy2
change - 1
]
goto b
change - 1
]
# 最後にキャッシュクリア
goto copy1
[
change - 1
]
# resへ移動
goto res
↓
かけ算
>>,<<++++[->>----------<<]>>-------->,<<<++++[->>>----------<<<]>>>--------<[>>+<<-]>[>[>+>+<<-]>>[<<<<<+>>>>>-]<[<+>-]<<-]>[-]<<<
# 「3」を入力した後「7」を入力すると、「21」のようにかけ算ができます!(入力は0~9まで)
使い方
コード
変数定義
Brainfuck Compiler内でのみ有効です。
変数定義サンプル
def a 5
change = a
# ↓
# >+++++
# メモリ1に「5」が入る
ポインター移動
ポインター移動サンプル
goto 3 #メモリ3へ移動
goto + 2 #2つ次のメモリへ移動
goto - 1 #1つ前のメモリへ移動
文字表示
文字表示サンプル
string A #メモリ1に65(Aの文字コード)を入れる
print #メモリの内容を表示する -> A
def c C #「C」を「c」に入れる
string var c #「C」の文字コード67をメモリに入れる
print # -> C
メモリ操作
メモリ操作サンプル
change = 5 # メモリに5を入れる
change + 3 # メモリの値を3足す
change - 2 # メモリの値を2減らす
def three 3 # 「3」を「three」に入れる
change = three # メモリに変数「three」の値(3)を入れる
ループ
ループサンプル
# 3回繰り返す
change = 3
[
change - 1
]
文字列を出力する
文字列出力サンプル
prints hoge #hogeを出力 ※変数には対応していません
ユーザーに尋ねる
inputサンプル
input 0 #ユーザーが入力する
print #ユーザーが入力した最初の1文字を出力
Brainfuckが分かりにくくて困っている人はぜひ Brainfuck Compiler を利用してくださいね!