読者です 読者をやめる 読者になる 読者になる

the industrial

都内で働くITエンジニアの日記

三次元なライフゲームを書いてみた

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

僕はなんとなく書けるレベル。

業務でもあまり触りませんが、嫌いじゃありません。

どうせならBackbone.jsとか使って書けばもっと勉強になったかなぁと。

Three.js

公式サイトで軽くお勉強しました。

http://threejs.org/

非常に簡単ですね。

ソース

gistに置いてありますのでご自由に。

※ Three.jsとTrackballControls.jsはGoogleDriveでホスティングしていますので、必要に応じて書き換えて下さい。jQueryGoogleのCNDデス。

JavaScript自体も原始的な書き方なので、ご指摘いただけると嬉しいです。

楽しいから、少しずつ機能追加していこうかしら。