ライフゲームのJavaプログラム

ライフゲーム【Game of Life】は、イギリスの数学者ジョン・ホートン・コンウェイ(John Horton Conway)によって考案された、セル・オートマトンと呼ばれるモデルの一つです。

ライフゲームは、2次元の格子状の世界(通常は無限に広がる)で進行するシミュレーションゲームです。この世界は、セルと呼ばれる正方形の単位で構成されており、各セルは生死の状態を持ちます。

ライフゲームの進行は、以下のルールに基づいて行われます。

生存ルール【Survival rule】:

生きているセル(生セル)は、周囲に2つまたは3つの生セルがあれば次の世代でも生存する。
それ以外の場合は、次の世代では死滅する。
誕生ルール【Birth rule】:

死んでいるセル(死セル)は、周囲にちょうど3つの生セルがあれば次の世代で誕生する。
過疎ルール【Underpopulation rule】:

生セルが周囲に1つまたは0つの生セルしかない場合、次の世代で孤立し死滅する。
過密ルール【Overpopulation rule】:

生セルが周囲に4つ以上の生セルがある場合、次の世代で過密により死滅する。
これらのルールに従って、初期配置されたセルの状態から次々と世代が進みます。セルの状態は、周囲のセルの状態に基づいて更新され、生セルが生存するか死滅するかが決まります。

ライフゲームは、単純なルールにもかかわらず、非常に複雑なパターンや動きを生み出すことがあります。特定の初期状態によっては、安定したパターンや周期的な振る舞いを示すものもあります。また、いくつかの初期状態では、セルの配置が無限に広がるパターン(グライダーやスペースシップなど)が生まれることもあります。

ライフゲームは、数学的な研究対象としてだけでなく、コンピュータ科学や人工生命の分野での実験や視覚化にも利用されます。

<サンプルプログラム>

実行結果は各自確認ください。