ブラウザで楽しむライフゲーム

ブラウザ上ですぐにセルを描いたり動かしたりして,世代交代による形の変化を観察できます.代表的なプリセット配置を選んですぐに動かすことも可能です.

読み込み中...

このツールが向いている用途

操作欄に戻る ↑

盤面の初期配置を自由に変更し,世代ごとのセルの生死や周期的な挙動を1ステップずつ観察したい用途に向いています.

まず試せること

パルサーを選んで1ステップずつ進めると,セル数が48から56,72を経て3世代で元に戻る周期変化を確かめられます.

利用条件

盤面は60×35の上下左右がつながるトーラス構造に固定されており,任意の盤面サイズや特殊ルールには対応していません.

ZeroToolsのブラウザ内処理とプライバシー

ZeroToolsは,入力内容を端末内で処理するツールを中心に提供しています.各ツールの対応範囲と制限を確認して利用してください.

データの取り扱い・プライバシー方針
第1章

B3/S23規則と八近傍による同期更新

コンウェイのライフゲーム(Conway's Game of Life)は,各セルが「生」か「死」の二状態を持つ二次元セルオートマトンです.このツールでは,対象セルの上下左右と斜めを含む八つのセルを近傍として数え,標準的なB3/S23規則で次の世代を決めます.

死んでいるセルは,周囲に生きているセルがちょうど3個あると次の世代で誕生します.これがB3の「B(Birth)」です.生きているセルは,周囲の生存セルが2個または3個なら次の世代でも生存します.これがS23の「S(Survival)」です.生きているセルの近傍が1個以下なら過疎,4個以上なら過密として死に,それ以外の死セルは死んだままです.

重要なのは,60×35の全セルを現在世代の盤面から判定し,次世代の別配列へ結果を書き込む同期更新であることです.計算途中で生まれたセルを同じ世代の別セルが参照することはありません.同じ初期配置と速度以外の同じ条件から開始すれば,世代ごとの盤面は同じ規則に従って決まります.速度設定は画面上で世代を進める間隔を変えるだけで,B3/S23の計算結果そのものは変えません.

第2章

60×35の固定トーラス盤面

このライフゲームシミュレーターの盤面は,横60列,縦35行の合計2,100セルに固定されています.数学的なライフゲームは境界のない無限平面を前提に説明されることがありますが,ブラウザ画面では有限の盤面を使うため,端をどう扱うかが結果へ直接影響します.

本ツールの境界は,上下と左右がそれぞれつながる固定のトーラス方式です.最上段のセルから見た上側の近傍は最下段,最右列から見た右側の近傍は最左列になります.例えば右端を越えた移動パターンは消えるのではなく,左端側へ回り込んで現れます.盤面に物理的な壁を置く方式や,境界外を常に死セルとして扱う方式ではありません.

この仕様により,グライダーのような移動パターンを限られた画面内で追い続けられます.一方で,反対側から戻ったセルが元のパターンや別のセル群へ衝突するため,無限平面上で知られる挙動と同じになるとは限りません.盤面サイズや境界方式を切り替える設定はなく,表示される結果は60×35の固定トーラス盤面に対するものです.

第3章

二次元配列とCanvas 2Dによる表示

盤面の状態はJavaScriptの二次元配列で管理し,各要素の0を死セル,1を生存セルとして扱います.世代更新では空の次世代配列を作り,現在配列の2,100セルについて八近傍を数え,B3/S23規則に一致する値を書き込みます.現在世代と次世代を分けることで,盤面全体を同じ時点の状態から更新します.

更新時には次世代の生存セル数を数え,画面の世代番号とともに表示します.現在盤面と次世代盤面に差が一つもない場合は,固定した盤面に到達したものとして自動実行を停止します.周期的に二つ以上の状態を繰り返す振動子は毎世代に差があるため,この停止条件には該当せず動き続けます.

描画にはHTML Canvasの2Dコンテキストを使用します.生存セルは青系の円形グラデーションを持つ角丸の矩形,死セルは薄いグリッド線として描きます.WebGL,GPUシェーダー,ビット圧縮した大規模盤面は使用していません.Canvasの内部解像度には端末のdevicePixelRatioを反映し,高密度画面でのぼやけを抑える処理を行いますが,見え方はブラウザ,拡大率,端末の画面特性により異なります.

第4章

ペン・消しゴムと世代実行の操作

盤面上では,ペンを選んでセルを生存状態にし,消しゴムを選んで死状態にできます.マウスではクリックまたはドラッグ,タッチ端末ではタップまたはスワイプを使います.セルの状態を自動的に反転する操作ではなく,選択中の道具に対応する状態を設定する方式です.実行中にも描画できますが,世代更新と操作のタイミングが重なると意図した形を保ちにくいため,初期配置は一時停止中に作ると確認しやすくなります.

開始ボタンは自動的な世代更新を始め,一時停止ボタンは現在盤面で止めます.「1ステップ進める」を使えば,一世代ずつ変化を追えます.クリアは全セルを死状態へ戻し,世代数と生存セル数も0にします.「カオス配置(ランダム初期化)」は各セルを約25%の確率で生存状態にするため,同じボタンを押しても毎回異なる初期配置になります.

速度スライダーは世代を進める待機時間を30〜600ミリ秒の範囲で調整します.値を小さくすると更新頻度が上がり,大きくすると一世代を長く表示します.これは処理速度やフレームレートを保証する設定ではありません.実際の更新間隔や操作への反応は,端末性能,ブラウザ,他のタブの負荷,背景タブでの実行制限などの影響を受けます.

第5章

5種類のプリセットと有限盤面での注意

プリセットは,グライダー,パルサー,軽量級宇宙船(LWSS),ゴスパー・グライダー銃,ドングリ(Acorn)の5種類です.選択すると現在の盤面を消去し,用意された相対座標を盤面中央付近へ配置して世代数を0へ戻します.ブロックやブリンカーは現在のプリセット一覧には含まれませんが,ペンを使って任意の初期配置を作ることはできます.

グライダーは5セルで構成され,世代を進めると斜め方向へ移動します.パルサーは周期3で変化する大型の振動子です.LWSSは水平方向へ進む宇宙船として知られる配置です.ゴスパー・グライダー銃は周期的にグライダーを生み出す構造で,Acornは7セルから長く複雑な変化を見せる初期配置です.

これらの性質は無限平面を前提に紹介されることが多いため,本ツールでは有限のトーラス盤面との差を意識する必要があります.生み出されたグライダーが反対側から戻って銃本体へ衝突したり,広がったAcornのセル群が境界をまたいで自分自身と干渉したりします.そのため,既知の寿命,安定形,放出回数を再現する検証器ではなく,固定盤面上で生じる変化を観察するためのプリセットとして利用してください.

第6章

観察用途とこのシミュレーターの限界

単純な局所規則から複雑な全体の模様が生じる過程を,セルの配置を変えながら観察できることがこのツールの主な用途です.ペンで初期配置を一つだけ変えたり,同じプリセットへ別のセルを加えたりして,数世代後の違いを比較できます.B3/S23,同期更新,近傍,周期,移動パターンといったセルオートマトンの基本概念を確認する教材として使えます.

一方,研究用の大規模計算環境ではありません.盤面は2,100セルに固定され,無限平面,可変サイズ,境界方式の変更,動的な計算領域拡張には対応しません.パターンの保存・読込,ファイル出力,状態を共有するURL,任意ルールの入力,速度測定,周期の自動検出も行いません.端末性能により更新速度やタッチ操作のしやすさも変わります.

セルの計算とCanvas描画はブラウザ内のJavaScriptで行います.ただし,Webページや必要な資産の初回読込など,サイト利用に伴う通信まで存在しないという意味ではありません.完全なオフライン動作,通信ゼロ,絶対的な安全性を保証するものでもありません.また,画面上の挙動は生命現象,流体現象,計算理論を証明するものではなく,B3/S23という限定された数理モデルの結果です.

よくある質問(FAQ)

A.
死んでいるセルは隣接する生存セルが3個のときに誕生し,生きているセルは隣接する生存セルが2個または3個のときに生存します.それ以外は死んだ状態になります.全セルを同じ世代の盤面から判定して一斉に更新します.
A.
60列×35行の盤面は,上端と下端,左端と右端がつながる固定トーラス境界です.グライダーなどが端を越えると反対側へ現れます.境界方式や盤面サイズを変更する機能はありません.
A.
グライダー,パルサー,軽量級宇宙船(LWSS),ゴスパー・グライダー銃,ドングリ(Acorn)の5種類を配置できます.ただし有限のトーラス盤面なので,無限平面上で知られる寿命や増殖結果とは異なる場合があります.
A.
タッチ操作に対応し,シミュレーション計算はJavaScriptでブラウザ内実行します.ただし操作性と速度は端末性能や画面幅に依存し,ページの初回読み込みなどの通信は発生します.完全なオフライン動作は保証しません.