2009年7月10日
JavaScriptでラングトンの蟻
『単純な脳、複雑な「私」』を読んだのだが、その中に出てきた「ラングトンの蟻」が面白そうだったので実装してみた。
「run」を押すと動き出しますが、IEだと遅すぎて使い物にならないので押さないように注意。少し時間がかかりますが、カウントが10000を越えたあたりから急に動きが変わります。マシンスペックにも寄りますが終わるまで大体賞味1分くらいかな。ちなみに、スペックが貧弱なパソコンだとCPUをぶん回している状態になると思うので注意。
いやー、ちゃんと動いてますね。ちゃんと動いたときは我ながらちょっと感動しました。
ラングトンの蟻と言うのは、存在が環境に影響を与え、環境が存在に影響を与えるというモデルで、非常に単純な規則ながら面白い動きをします。最初はデタラメに動いていたものが、ある段階から急に規則的に動き出すというものです。
具体的な規則は、下記の繰り返しです。これだけです。
- 一マス動く
- 入ったマスが白だったら黒に、黒だったら白にマスの色を変える
- 入ったマスが白だったら右に、黒だったら左に方向転換
ちなみにこのプログラム、ビットマップ的な表現をするために、divボックスの中に3ピクセル幅のdivボックスをfloatで敷き詰めて、その背景色を変化させるってやり方をしてるんだけど、やっぱこれって効率悪いのかな?もっと良い方法があったら知りたい。
久し振りにスクラッチからJavaScriptを書いたので面白かった。そしてIEの遅さに改めて唖然とした。