このプロジェクトは、コンウェイのライフゲームを Reactを使って実装したものです。
ブラウザ上でセルオートマトンの進化を観察でき、ルールやパラメータを変更しながら試すことができます。
アプリはこちらから利用できます:
https://life-game-l9nv.vercel.app/
ライフゲームはイギリスの数学者ジョン・ホートン・コンウェイが考案したセルオートマトンです。
「ゼロプレイヤーゲーム」とも呼ばれ、初期状態を与えると自動的に世代が進んでいきます。
ルールは単純ですが、そこから生まれるパターンは多様で複雑です。
このことから、ライフゲームは計算機科学・数学・複雑系の研究や教育で広く取り上げられています。
- 誕生: 死んでいるセルに隣接する生セルがちょうど3つ → 誕生
- 生存: 生セルの隣に2つまたは3つの生セル → 生存
- 過疎: 生セルの隣が1つ以下 → 死亡
- 過密: 生セルの隣が4つ以上 → 死亡
このアプリでは、Conway の標準ルール以外にも HighLife, Seeds, Day & Night など複数のルールを切り替えて試すことができます。
| ブロック(安定) | ブリンカー(振動子) | グライダー(移動) |
|---|---|---|
■ ■
■ ■
|
■
■
■
|
■
■ ■
■ ■
|
- 「開始 / 停止」: シミュレーションの実行/停止を切り替えます。
- 「ランダム」: 現在の「個体数」で初期化します。
- 「クリア」: すべてのセルを死にします。
- 「速度」: 1〜1000 世代/秒を 1 刻みで指定します(右ほど高速)。
- 「グリッドサイズ」: 20〜200 の範囲で盤面サイズを変更します。
- 「ルール」: Conway(標準)ほか、複数のルールを選択できます。
- 盤面編集: 停止中にセルをクリックで ON/OFF。Shift+クリックで 2×2 のブロックを配置できます(安定パターン)。
- 個体数(0〜盤面の総セル数)
- 「ランダム」実行時に配置する生きたセルの数を指定します。既定は盤面の約25%。
- 速度(世代/秒)
- 1 → 約 1000ms/世代(1 世代/秒)
- 1000 → 約 1ms/世代(1000 世代/秒)