Qiitaに書いた物をまんま転記。
前回、「Qiita:Scalaでライフゲームを書いてみました」なんてものをやってみましたが、三次元でやるとどうなるのだろう?と思い、以前から気になっていたThree.jsで書いてみました。
今のところ単純にランダム配置して眺めるだけの実装です。
眺めているだけでも楽しいです。
作ったもの
GoogleDriveでホスティングしています。
遊び方
- "START"ボタンでスタート
- "STOP"ボタンでストップ
- "RANDOM"ボタンでランダム配置
- "ONESTEP"ボタンで1回処理
あとは眺めるだけ!
二次元でもThree.js上にプロットしているので、グリグリ動かせます。
Three.js面白い!
ルール
二次元
二次元ライフゲームのルールは、「Qiita:Scalaでライフゲームを書いてみました」と同じく一般的な「23/3」です。
三次元
三次元ライフゲームのルールはちょっと悩みましたが、二次元のルールになんとなく倍くらいにした「4~7/6」です。
三次元はその名の通り、あるセルのX(横):Y(縦):Z(高)で周囲1のセルによって、当該セルの次世代の生死が決まるようにしています。
使ったもの
- JavaScript
- jQuery(1.9.1)
- Three.js(r70 ※執筆時点で最新)
- Google Chrome(バージョン 40.0.2214.111 m)
ちなみに
JavaScript
僕はなんとなく書けるレベル。
業務でもあまり触りませんが、嫌いじゃありません。
どうせならBackbone.jsとか使って書けばもっと勉強になったかなぁと。
Three.js
公式サイトで軽くお勉強しました。
非常に簡単ですね。
ソース
gistに置いてありますのでご自由に。
※ Three.jsとTrackballControls.jsはGoogleDriveでホスティングしていますので、必要に応じて書き換えて下さい。jQueryはGoogleのCNDデス。
JavaScript自体も原始的な書き方なので、ご指摘いただけると嬉しいです。
楽しいから、少しずつ機能追加していこうかしら。