砂のアスキーアート
もう多分10年くらい前なんだけど「砂」というアプリケーションが好きで、よく遊んでた・・・というか眺めてた。
その「砂」のiPhone版が出たとか言うのをたまたま目にして説明文読んでたら、あれって実はすごく簡単なアルゴリズムで動いてたらしい。
http://ccnet.dip.jp/sand/#HowToMove
- 下に何もなければ下に動く
- 右と下に障害物があって左に何もなければ左に動く
- 左と下に障害物があって右に何もなければ右に動く
- 上のみがあいている場合は一定の確率で上に動く
- 左右に何もなくて下に障害物があるときは右か左か それとも動かないかのどれかを適当に選ぶ
これならJavaScriptでもできるじゃん、と思ってやってみた。ただし、そのままJSに移すだけだといまいち面白みがなかったので、ちょうど開催中だったHTML5コンテストの「アスキーアートカテゴリ」に無理やり絡めた。(しかしHTMLとアスキーアートを組み合わせるって誰がどうやって思いついたんだろ・・・
http://physicsketch.appspot.com/sandjs/index.html
テキストエリアに好きなアスキーアートをコピペして、「Set」ってボタンを押すと砂のアスキーアートができるのでよかったらちょっと試してみてください。