けものフレンズ語録から出来たプログラミング言語「Kemono」の使い方

公開日:

最近、アニメ界隈で何かと話題になっている「けものフレンズ」。

第一話は「手抜き」「縛られないと見れない」「2分で切った」など…酷評を受けていたようですが、話が進むに連れてクセのあるストーリーに引き込まれていく人がじわじわと増えてきたようで、第五話を迎えた今週あたりからTwitter某掲示板などで流行しています。

そんなけものフレンズのキャラクターのセリフ(主に主人公)から出来たBrainf**k系言語がmasarakkiによってGitHubに公開されていたので、ここでは真面目にご紹介させて頂きたいと思います。わーい!ガイド!ガイド!

インストールのしかただよー!

r-fxxk

まず、このKemono言語はRubyのBrainf**k系ライブラリに依存してるからそれをgemでインストールする必要があるよ!ライブラリの名前はr-fxxkって言うんだ―!なんかむずかしー!

UNIX/Linuxのフレンズはインストールするのにsudoが必要だから、気をつけてねー!

sudo gem install r-fxxk

kemono_friends_lang

そしたらつぎはgitでKemono言語のライブラリをcloneするよ!えーなにこれ、ディレクトリにコピーできるのー?すごーい!

cd /YOUR DIRECTORY
git clone https://github.com/consomme/kemono_friends_lang.git

クローンが終わったらもう使えるようになるよ!

kaban_chang.kemono

さっきcloneしたディレクトリにcdしてkemonoファイルを実行するよー!はやくはやく―!

「kaban_chang.kemono」ってサンプルコードが初めから入ってるからためしてみてね!たーのしー!

cd /YOUR DIRECTORY/kemono_friends_lang
./kemono kaban_chang.kemono

> Hello World!

成功すると「Hello World!」と出力されるよ!

コードのかきかただよー!

筆者はBrainf**kが得意なフレンズじゃないから図書館に行かないとわかんないかなー!

さっきの”Hello world!”を出力するサンプルコードはこんなふうにできていたよ!

たのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!うわー!すごーい!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たのしー!すっごーい!わーい!すごーい!なにこれなにこれ!たのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!うわー!すごーい!たーのしー!たーのしー!たーのしー!たーのしー!たのしー!すっごーい!わーい!すごーい!たーのしー!なにこれなにこれ!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!なにこれなにこれ!なにこれなにこれ!たーのしー!たーのしー!たーのしー!なにこれなにこれ!うわー!すっごーい!わーい!たのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!うわー!すごーい!たーのしー!たーのしー!たーのしー!たーのしー!たのしー!すっごーい!わーい!すごーい!なにこれなにこれ!たのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!うわー!すごーい!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たのしー!すっごーい!わーい!すごーい!なにこれなにこれ!たのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!うわー!すごーい!たーのしー!たーのしー!たーのしー!たのしー!すっごーい!わーい!すごーい!なにこれなにこれ!たーのしー!たーのしー!たーのしー!なにこれなにこれ!すっごーい!すっごーい!すっごーい!すっごーい!すっごーい!すっごーい!なにこれなにこれ!すっごーい!すっごーい!すっごーい!すっごーい!すっごーい!すっごーい!すっごーい!すっごーい!なにこれなにこれ!うわー!すっごーい!わーい!たのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!うわー!すごーい!たーのしー!たーのしー!たーのしー!たーのしー!たのしー!すっごーい!わーい!すごーい!たーのしー!なにこれなにこれ!うわー!すっごーい!わーい!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!なにこれなにこれ!

それぞれの言葉はこんな意味があるよ!ここからは得意なフレンズじゃないとむずかしーかも!でも大丈夫、フレンズによって得意なこと違うから!

たのしー! ポインタを右へ移動するよ!
たーのしー! ポインタの指す値を1増やすよ!
すごーい! ポインタを左へ移動するよ!
すっごーい! ポインタの指す値を1減らすよ!
うわー! ポインタの指す値が0なら 対応する ‘わーい!’ までジャンプするよ!
わーい! ポインタの指す値が0で無いなら 対応する ‘うわー!’ までジャンプするよ!
なにこれなにこれ! ポインタの指す値を出力するよ!
おもしろーい! 入力から1バイト読み込こむよ!

解説だよー!

筆者もよくわからなかったけど、調べてみたよ!

Hを出力するよ!

たのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!うわー!
すごーい!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たーのしー!たのしー!すっごーい!
わーい!すごーい!なにこれなにこれ!

大文字の”H”はASCIIコードで72だから、計算短縮のために8×9としてループ処理をするんだよ!

ASCIIコード一覧だよ!すっご―い!

まずはAとBっていう部屋があって、自分がAにいるとするよ!

AからBに移動するときは「たのしー!」、BからAに移動するときは「すご―い!」と言わなきゃいけないと考えてね!

そしたらかけ算をするよ!でもKemono言語は足し算と引き算しか出来ないから、Aの部屋で計算するためにBの部屋にかける数の9を置いてくるよ!

数字を置くには「たーのしー!」を置きたい数の回数、数字を無くすには「すっご―い!」を無くしたい数の回数言うよ!

AからBの部屋に移動して9を置くためには始めに「たのしー!」といったあとに「たーのしー!」と9回言うよ!

9を置きおわったらAの部屋にもどるために「すごーい!」というよ!

Aの部屋にもどったら今度はかけられるかずの8を置くよ!「たーのしー!」と8回言ってね!

Bの部屋に9を置いて、Aの部屋に8を置いたら、今度はまたBの部屋に戻って1を減らすよ!

戻るために「たのしー!」、減らすために「すっごーい!」と1回ずつ言ってね!

ここまでの操作で8×1が完成したよ!これを9回すれば9×8になるね!わーい!

この操作を9回するためにはループ処理を使うよ!ループを始める場所で「うわー!」、終わる場所で「わーい!」と言うよ!

8×1はAの部屋に8を置いたところからBの部屋で1を減らしたところまでがループだから、「たーのしー!」を8回言ったところの前に「うわー!」を

1を減らしたところの後に「わーい!」を言うよ!

「うわー!」から「わーい!」の間にある作業は、「うわー!」と言ったほうの部屋に置いてある数字がなくなるまで繰り返されるよ!

Bが0になるまでAに8を足し続けたら、72に、つまり8×9の計算が終わったことになるよ!

Bが0になった時点で最後にいる部屋はBの部屋だから、もとの部屋にもどるためにもう一度「すごーい!」と言うよ!

Aの部屋に戻ったら最後に「なにこれなにこれ!」というよ!そうすると画面にASCIIコード72番の「H」が出力されるよ!

こんな感じになっていたんだね!すごーい!たのしー言語だね!

フレンズのみんなもKemono言語でなにか実装してみてね!ばいばーい!