Javaプログラミング/Javaプログラミング関連情報

Lifeゲームって、知っていますか?

今回は、数学シミュレーションの古典ともいえる「ライフ」ゲームを作ってみます。単純ですが、意外にはまりますよ。

執筆者:掌田 津耶乃

FreeLifeは生物シミュレーションの古典。緑の点が生物を表します。

ライフはシミュレーションの古典!


新しいプログラミング言語を覚えるとき、ガイドはちょっと変わったやり方をします。まず基本的な文法などをざっと頭の中に入れたら、いくつかの決まった小さなプログラムを作り始めるのです。このプログラムは別に特別なものではなくて、ちょっとした電卓プログラムであるとか、シンプルなゲームであるとか、そうしたごくありふれたものです。どんなプログラミング言語を作るときにも、まずこれらを作るのです。そうやって既に作った経験のあるプログラムを移植することによって、新しく覚える言語のクセやそれまで使っていたものとの違いなどを知ることができるのですね。

今回の「ライフ」というプログラムも、そうした「最初に作るサンプルプログラム」のひとつなのです。正直いって大昔のプログラムですし、地味で「なんだこれ?」という感じがするかもしれません。が、このプログラムには「二次元ゲームのゲーム盤の仕組み」「スレッドによる同時複数処理の実行」「多数のデータの演算」といった処理の基本がすべて詰まっています。これが作れれば、二次元の簡単なゲームなどはすぐに作れるようになるのですよ。

「ライフ」というのは、ケンブリッジ大学のジョン・H・コンウェイ教授によって考案された数学パズル(というより数学シミュレーション)です。ライフは、生物の繁殖と死滅をごく単純なルールに基づいてシミュレーションするもの。縦横にずらりとマス目が並ぶ二次元的な世界をイメージしてみてください。その中のいくつかのマス目に生物がいたとしたとき、それが次の世代ではどのように繁殖あるいは死滅するか、ということを、一定のルールのもとにシミュレーションするのです。

今回作成したプログラム「FreeLife」は、「Start」「Clear」の2つのボタンだけしかないシンプルなものです。ウインドウ内には真っ黒に塗りつぶされた領域がありますが、これがライフの生息するスペースです。ここをマウスでクリックすると、クリックした地点に緑色の点が表示されます。これが、ライフ世界の「生物」です。サイドクリックすると生物を消すことができます。

こうしてスペース内をクリックして適当に生物を配置し、「Start」ボタンをクリックすると、ライフ世界の時間が動き始めます。後は、その生物たちの繁殖を眺めているだけです。再度「Stop」ボタンを押せば時間は停止します。また「Clear」ボタンを押すと、すべての生物を取り除くことができます。

まずは、実際にプログラムを動かして、ライフの世界がどういうものか確かめてみましょう。一目見て「つまらない」と思う人もいるでしょうが、中には、このシンプルな世界に引き込まれてしまう人もいるかも知れませんよ?

  • 1
  • 2
  • 3
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます