« 恋愛は複雑系 | メイン | golf.shinh.orgの出題ミスの件 »

2009年7月10日

JavaScriptでラングトンの蟻

『単純な脳、複雑な「私」』を読んだのだが、その中に出てきた「ラングトンの蟻」が面白そうだったので実装してみた。

「run」を押すと動き出しますが、IEだと遅すぎて使い物にならないので押さないように注意。少し時間がかかりますが、カウントが10000を越えたあたりから急に動きが変わります。マシンスペックにも寄りますが終わるまで大体賞味1分くらいかな。ちなみに、スペックが貧弱なパソコンだとCPUをぶん回している状態になると思うので注意。

ソース

いやー、ちゃんと動いてますね。ちゃんと動いたときは我ながらちょっと感動しました。

ラングトンの蟻と言うのは、存在が環境に影響を与え、環境が存在に影響を与えるというモデルで、非常に単純な規則ながら面白い動きをします。最初はデタラメに動いていたものが、ある段階から急に規則的に動き出すというものです。

具体的な規則は、下記の繰り返しです。これだけです。

  1. 一マス動く
  2. 入ったマスが白だったら黒に、黒だったら白にマスの色を変える
  3. 入ったマスが白だったら右に、黒だったら左に方向転換

ちなみにこのプログラム、ビットマップ的な表現をするために、divボックスの中に3ピクセル幅のdivボックスをfloatで敷き詰めて、その背景色を変化させるってやり方をしてるんだけど、やっぱこれって効率悪いのかな?もっと良い方法があったら知りたい。

久し振りにスクラッチからJavaScriptを書いたので面白かった。そしてIEの遅さに改めて唖然とした。

投稿者 Songmu : 2009年7月10日 00:19