Graviness Blog

算数・数学・科学・電脳・雑記・アホの順の密度で記事が構成されます.
<< July 2017 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >> ブログランキング・にほんブログ村へ
 
RECOMMEND
ビッグバン宇宙論 (上)
ビッグバン宇宙論 (上) (JUGEMレビュー »)
サイモン・シン, 青木 薫
RECENT COMMENT
  • 豊臣秀吉と曾呂利新左衛門から学ぶ数列の和
    優乃 (07/12)
  • 【誰か解いて】漸化式 a_(n+1) = f(n) * a_n ^ g(n) + h(n) の一般項
    優乃 (02/18)
  • 【誰か解いて】漸化式 a_(n+1) = f(n) * a_n ^ g(n) + h(n) の一般項
    S.S.+ (02/16)
  • 豊臣秀吉と曾呂利新左衛門から学ぶ数列の和
    坂井昭 (03/19)
  • d/dx(x↑↑n): 高さが定数のテトレーションの微分 - 数学的帰納法を用いる方法
    (09/30)
  • 全ての三角形は二等辺三角形
    優乃 (09/28)
  • 全ての三角形は二等辺三角形
    亀レス (09/28)
  • 全ての三角形は二等辺三角形
    優乃 (09/24)
  • 全ての三角形は二等辺三角形
    亀レス (09/23)
  • 【未解決】新しい演算子を創る
    $_ (09/10)
RECENT TRACKBACK
MOBILE
qrcode
PROFILE
無料ブログ作成サービス JUGEM
 
Conway's Game of Life in JavaScript
ライフゲーム(Conway's Game of Life) の JavaScriptバージョンを作成しました.

 Conway's Game of Life in JavaScript

【使い方】
・[Start] を選択すると,動作を開始し,一定間隔で次の世代に移行します.
・動作中,[Stop] を選択すると,動作を停止します.
・[Clear] を選択すると,動作中なら動作を停止したあと,画面内のセルを全てクリアします.
・画面内をクリックするとセルが反転します.
・画面内でドラッグすると,連続してセルを変更します.
・停止中,[Next] を選択すると,次の1世代だけ移行します.
・[Save] を選択すると,セルの状態を一時的に保存します.保存した状態は,[Load] を選択すると復元します.
・[Export] を選択すると,現在のセルの状態をテキストエリアに書き出します.
・[Import] を選択すると,テキストエリアからセルの状態を読み出します.半角空白文字または半角ピリオド文字をオフ(死んでいる)状態と認識し,それ以外は,オン(生きている)状態と認識します.
・[Generation] は,初期状態から経過した世代数を表示します.
・[Active Cell] は,旧の世代から状態が変化したセル数を表示します.生きているセルの数ではありません.
・[Interval Time] を選択すると,世代移行の間隔が変更されます.
・組み込みパターンを選択できます.
  ・Gliderguns 1~3: 一定間隔でグライダーを打ち続けます.
  ・Gliderguns Gen.: Gliderguns が生成されます.
  ・LWSS/MWSS/HWSS: 軽量/中量/重量級宇宙船で,画面右から左に移動します.
  ・Plusar: 周期3で振動します.
  ・Diehard: 死滅するまでの周期が長く,130世代かかります.
  ・Garden of Eden pattern 1: 初期状態以外からでは生成できないパターンの一つです.
  ・Acorn: 5206世代かかってグライダーを13機打つようですが,画面が小さいため確認できません f^^;
  ・Growth1~3: 無限に成長します.Growth1 は無限に成長するもので最小であることが証明されているそうですが,画面が小さいため確認できません f^^;
  ・Random Random: 全てのセルの状態をランダムに決定します.
  ・Random: 全てのセルの状態を一定の比率で決定します.
・初期セルの状態は,"Gliderguns Gen." です.
【ライフゲームの概要】※マークアップを改編してwikipediaより引用.
ライフゲーム(Conway's Game of Life)は1970年にイギリスの数学者ジョン・ホートン・コンウェイ (John Horton Conway) によって考案された生命の誕生、進化、淘汰などのプロセスを簡易的なモデルで再現したシミュレーションゲームである。

【ライフゲームのルール】※マークアップを改編してwikipediaより引用.

ライフゲームは「0人ゲーム」である。通常のゲームではプレイヤーの操作でその後の状態が変化していくが、ライフゲームでは初期状態のみでその後の状態が決定されるからである。碁盤のような格子があり、一つの格子はセルと呼ばれる。各セルは8つのセルと接している。各セルには「生」と「死」の2つの状態があり、あるセルの次のステップ(世代)の状態は周囲の8つのセルの今の世代における状態により決定される。

セルの生死は次のルールに従う。基本的な考えは「過疎状態でも過密状態でも生き残ることはできない」というものである。

誕生
  死んでいるセルの周囲に3つの生きているセルがあれば次の世代では生きる(誕生する)。
維持
  生きているセルの周囲に2つか3つの生きているセルがあれば次の世代でも生き残る。
死亡
  上以外の場合には次の世代では死ぬ。


【余談】
FireFox推奨です.InternetExplorer性能悪いたらーっ.ドラッグするだけでCPU100%ってどういうこっちゃ?
・ゲームといいながら,ゲームの目的を見つけるのが非常に困難な代物だと思いますモゴモゴwルールが単純でプログラミングしやすいので,作り手側は楽しいですイヒヒ
・ほとんどの初期状態では死滅しますが,生き残るタイプがあります.詳しくは,Conway's Game of Life@wikipediaを見てもらうと分かりますが,分類すると「固定型」「振動型」「移動型」「繁殖型」などがあるようです.

【変更履歴】
・2009/02/16
  β版公開.
・2009/03/08
  正式版公開.β版からの変更点は以下.
  ・状態を保存・復元する機能を追加.
  ・状態をインポート/エクスポートする機能を追加.
  ・[Next] ボタンの追加.
  ・世代数/活性しているセル数を表示.
  ・更新間隔を変更できる機能を追加.
  ・組み込みパターンの追加.

【参考】
Conway's Game of Life@wikipedia
Conway's Game of Life@wikipedia@英語
人生ゲーム@アトムの物理ノート
コメント
from: アトム   2009/02/22 9:48 AM
あ、作ってる。気がつかなかった。。。。さすがに仕事が速い。
from: 優乃   2009/02/26 7:53 PM
あ,すみません.私は,このアプリを作る発端がアトムさんの記事であることを忘れるくらい,楽しめましたw

トラックバック送っておきますね.
コメントする









 
トラックバック
この記事のトラックバックURL
http://blog.graviness.com/trackback/809411
 

(C) 2017 ブログ JUGEM Some Rights Reserved.