砂のアスキーアート

もう多分10年くらい前なんだけど「砂」というアプリケーションが好きで、よく遊んでた・・・というか眺めてた。

その「砂」のiPhone版が出たとか言うのをたまたま目にして説明文読んでたら、あれって実はすごく簡単なアルゴリズムで動いてたらしい。

http://ccnet.dip.jp/sand/#HowToMove

  • 下に何もなければ下に動く
  • 右と下に障害物があって左に何もなければ左に動く
  • 左と下に障害物があって右に何もなければ右に動く
  • 上のみがあいている場合は一定の確率で上に動く
  • 左右に何もなくて下に障害物があるときは右か左か それとも動かないかのどれかを適当に選ぶ

これならJavaScriptでもできるじゃん、と思ってやってみた。ただし、そのままJSに移すだけだといまいち面白みがなかったので、ちょうど開催中だったHTML5コンテストの「アスキーアートカテゴリ」に無理やり絡めた。(しかしHTMLとアスキーアートを組み合わせるって誰がどうやって思いついたんだろ・・・

http://physicsketch.appspot.com/sandjs/index.html

テキストエリアに好きなアスキーアートをコピペして、「Set」ってボタンを押すと砂のアスキーアートができるのでよかったらちょっと試してみてください。