プログラミンで頑張って作られてるロジックを徹底解析

文部科学省が数日前にリリースしたプログラミンというビジュアル言語環境が個人的に凄い面白い。

プログラミン | 文部科学省

プログラミンという特定の処理機能を持った生物?を有機的に組み合わせることで、物が動いたり処理が連鎖したりという結果を発生させる。プログラミングが結果としての動作をいったん言語に落とし込む部分を、視覚的な手法で代替させてより直感的に現象を扱うことができることだろう。

絵柄も可愛く、全体的にクレヨンで書かれたような色調で出来上がったコンテンツがどれもこれも絵本のような風合いを持つのも統一感があって総じて何となく完成度が高そうに見えることに寄与しているのではないか。この感覚は実は大人でも子供でも、出来上がったものがちょっとでも素敵に見えれば更にその先に進もうというモチベーションにも繋がる気がする。

さて、個人的な面白さというと、やはり本業でプログラミングをしているので内部処理が気になってしまう。そもそも限定的なロジックしか書けないプログラミンの中で、特定の複雑な処理をどのように書いているのか気になってしまう。

幸いなことにプログラミンには元の処理を閲覧・編集できる機能があるので、実際の処理を眺めたり改変したりすることが可能なのだ。

例えばこれ

クマジャンプという作品であるが、jumpボタンを押した瞬間に幾つかの処理がランダムに発生する。プログラミンにはランダム整数を返すような関数は定義されていないので、どう実現しているのかは気になるところです。

で、実際にソースコードを見てみると、数字のオブジェクトと高速に横移動を続ける「?」マークがあることが分かります。実は、jumpボタンを押した瞬間に「?」マークに上移動の指示が発生します。上に移動するとどれか1つの数字と接触することになります。するとブツカッタンが呼び出されて、各数字に割り当てられていた処理が実行される。

このようにして、擬似的にランダムを発生させている。

他にも例えばこちらの作品はタイマー関数が無いにも関わらず一定時間後に呼び出される処理を実装しているのが優れた点と言えるでしょう。

他にも難易度の設定があったりクリア時のランク評価機能があったりと大変複雑なことになっているようです。デバック環境が貧弱な中、独自にそれっぽいものが実装されているのも圧巻です。

他にも面白いネタがあったらまとめて置いていくのでコメントなりで連絡頂けるとうれしい。