Excelでドラクエ3

Excel上でドラクエ3を再現したという話が出ていますね。VBAを使えばもちろんできてしまうわけですけど、これはVBAを使っていないのだとか。一体どうやってやったのだろうと思うのですが、きちんと解説されていますね。

グラフの一種散布図では、標準的には指定の座標に点を打ちますが、指定した画像を貼るということもできるのだそうです。それを利用して、画面一面に散布図を描くような指定をして、そこにドット絵を描くように画像を指定して描かせることで画面を表現しているのだとか。

それではどうやって変化させているのかというと、循環参照なのだそうです。Excelでは、たとえばA1セルに"=A1+1"と書くと、A1セルの内容を計算するためにA1セルを参照することになるので循環参照のエラーが出ますが、実はF9キーを押すとそれを無視して計算してくれるのだそうです。そうすると、A1セルに元々入っていた値が1インクリメントされることになるので、循環参照のエラーを1回無視させるごとにカウントアップされていくことになり、F9キーを押し続けている間カウントされ続けるというわけです。それができるとあとは、これをプログラムカウンターとして利用して分岐や条件判定をおこなうようにして制御する、ということだそうです。なるほど…。

理屈としてはわかりましたが、これで本当にやってみるというのが凄いですし、VBAを使えばもっと楽に実現できるのだから、自分ではやる気になれないですね。まあ世の中いろいろ考える人がいるものです。

この記事へのコメント