JavaScript»基礎 ライフゲームをつくる

ファイル名: js-basic/quest_00346.html

このライフゲームでは、生命せいめいを緑のブロックで表して、生命せいめい誕生たんじょう進化しんか淘汰とうたをシミュレーションします。

ライフゲームのライフを表示する」でつかった2次元配列じげんはいれつのデータを、200ミリ秒ごとに、次のルールで書きかえて、生命せいめい繁栄はんえいし、消えていく様子を表示ひょうじしてみましょう。

  • 生命せいめいのない黒いところのまわりにちょうど3つの生命せいめいがあれば、そこに新しい生命せいめいが生まれます。
  • 生命せいめい(緑のブロック)は、まわりに2つか3つの生命せいめいがあれば、生きのびます。
  • 生命せいめい(緑のブロック)は、まわりに生命せいめいが1つ以下しかいなかったら、さみしくて死にます。
  • 生命せいめい(緑のブロック)は、まわりに生命せいめいが4つ以上いたら、増えすぎで死にます。

ヒント

書きかえるときに必要な情報は、自分が生命かどうかと、自分の上下左右のマスに生命があるかないか。上のマスはxは同じでyは1小さい、下のマスは……と考えていけるね。
上下左右のマスにいくつ生命があるかを数える作業は1マスずつ何度もくりかえすから、for文や関数が便利そうだね。
生命があるかないかはtrueとfalseであらわせるから、書きかえルールを条件分岐文にするには……。