芸術的なプログラム

今季放送中のアニメ「Sonny Boy」で少々、というかかなり面白いシーンが放送されました。

アニメ「Sonny Boy」の『難解』プログラム ― nankai.rb

アニメを見ている段階では「あぁプログラムについて知らない人がよくやる『何かそれっぽい表現』ね」くらいにしか考えてなかったのですが、作者の解説ページで実は相当凝ったものだったことが判明。

アニメ「Sonny Boy」の『難解』プログラムの解説

・文字はアニメーションではなくプログラムで動かしていて
・そのプログラム自身が「難解」というアスキーアートになっていて
・そのアスキーアートは「クワイン」という手法で表示していて
・「難解」は「難」「解」に分解してもプログラムとして成立していて
・「解」は「角」「刀」「牛」に分解してもプログラムとして成立していて
・「難解」がほどけた後の「Solved」も同じ仕掛けがしてあって
と、たった5秒の中にこれでもかと詰め込んでいます。

無味乾燥だと思われがちなプログラミングの世界においてこれほど遊び心に溢れた表現ができることに対してただただ喝采を贈りたい。

プログラムを四角く切り取る

プログラミング経験がない人にとって、これがどれほど凄いことかというのが伝わるかどうか…

例えば自動車を左右に真っ二つに切ったら鉄くずが出来上がるじゃないですか。
例えばテレビを上下左右の4つに切ったら粗大ごみが出来上がるじゃないですか。

プログラムも同じ。普通プログラムの一部だけ切り取るとなんの役にも立たない文字列が出来上がるだけなんですよ。行単位で切り取れば部品として再利用することも出来るんですが、「四角く」切り取るとか普通無理。
これが、車を左右に真っ二つに切ったらバイクが2台できましたとか、テレビを上下左右の4つに切ったら小さなテレビが4台できましたとか、そういうことが起きたんです。「は?」です。

というか四角く切り取ろうという発想にならない。「四角く切り取っても動くようなプログラムを書けますか?」と聞かれれば「できなくはない、と思う」と答えると思います。そういう意味ではコロンブスの卵に近い。誰にでも出来るようなことじゃないからコロンブスの卵ではないけど。

「難解」というアスキーアートで表現されたプログラムを「難」「解」に分けたり「角」「刀」「牛」に分けるというのは、自分の中ではそれほどの驚きでした。

この記事が気に入ったらサポートをしてみませんか?