#2 ライフゲーム  1999.03.10(初版)


目次へ 1ページ 2ページ 3ページ 4ページ


 ライフゲーム(Life game)を考えます。これはイギリスの数学者 John Horton Conway
が考案したもので、碁盤の升目の上に配置した生命体の誕生・生・死が世代の変化とし
て進行するゲームです。単純なルールであるのに非常に変化に富むパターンを生み出す
ため、一昔 前に大流行したゲームです。いまでも、LinuxやFreeBSDなどで動く XLIFE 
というゲームが あります。 

 各セル(升目)には生命体の生と死との2つの状態があり、次の世代の状態はそれぞ
れのセルの縦、横、斜めの8つの隣の状態で決まります。ルールは2つ、 

(1)生きている生命体について、隣の生きている生命体が1つ以下なら、そのセルの
 生命体は次の世代で死ぬ(孤独死)。また隣の生きている生命体が4つ以上なら、次
 の世代は死ぬ(人口過密)。 

(2)死んでいる(または空の)セルについて、隣の生きている生命体が3つなら、 
 次の世代の生命体が誕生する(繁殖)。 

という簡単なものです。次の図は、生命体の第1世代から第2世代への変化の例を示し
ています。 

ライフゲームのルール  これをプログラムに組むのはさほど難しくはないでしょう。例えばC言語でかくなら、 まずセルに対応した2次元の配列を用意して、各配列の要素の値を0(死)と1(生) とで生命体の状態を表現することができます。また世代の変化を記述するために、2つ の配列を使って一方の配列を元に次の世代の状態を求め、交互に繰り返して行けばよい でしょう。  ここでは、クラスを使った2種類の方法を考えます。1つは平凡なクラス設計で、も う一つは少し気の利いたクラス設計方法です。  尚、この様なゲームは単なる一時の娯楽に過ぎないのか、あるいは何らかの科学的な 真理の一端を表現するものなのか、という疑問に興味をお持ちの方は例えば ピーター・W・アトキンス著『エントロピーと秩序』、日経サイエンス社 の最後の章、9.カオスがつくりだす模様 のなかで、自然界に見られる散逸構造の説 明の引き合いとして解説があります。答えが見つかるかもしれません。

| 目次| 次のページ |

Copyright(c) 1999 Yamada,K