「ライフゲーム(カスタムルール)」シミュレーターで実験してみよう!独自のルールを制定して動きを確かめよう!
前回記事では「ライフゲーム」のシミュレーターでその動きを確かめられるようにしました。
今回は、ルールが変えられる「ライフゲーム」シミュレーターを用意してみました!面白いルールを発見してみましょう!
目次
おさらい:ライフゲームとは?
ライフゲームのルール
ライフゲームとは↓のようなマス目上で「黒」か「白」の状態を持たせ、各マスを1つの生物とみて観察するゲームです。
黒が生存、白が死亡状態を指します。
そして、各マスは↓のように「周囲8個のマスのうち、何個が生存状態か」によって動きを変えます。
周囲の黒が2個か3個 ⇒ 生存したまま
その他 ⇒ 消滅
対象マスが白(死滅)の場合
周囲の黒が3個 ⇒ 復活
その他 ⇒ 死んだまま
例えば、↓の場合は中心のマスの周りに3つ生存マスがあるので「生存のまま」です。
逆に↓の場合は周りに5個の生存マスがあるので「死滅」となります。
また死滅したマスも、判定を行っていて↓の場合は周りに3つの生存マスがあるので、真ん中のマスは「復活」となるんです!
このような「死亡」と「復活」を繰り返すことで、まるで生きている生物のように複雑な動作を繰り返すんです!
意味合いとしては「適度に仲間が多い環境でのみ生存でき、過密すぎる環境だと死滅する生物」をモデルとしています。
また、「最適な環境でのみ、子供が誕生する」状態をモデル化しているんです。(復活=誕生という解釈)
カスタムルールの作り方!
標準ルールは↑の通りですが、今回は↓のルールが変更できるようになっています!
周辺生存数=選択した個数の場合 ⇒ 生存したまま
その他 ⇒ 消滅
対象マスが白(死滅)の場合
周辺生存数=選択した個数の場合 ⇒ 復活
その他 ⇒ 死んだまま
↓のように「生存継続」ルールと、「復活」ルールを選択できるようになっています。対象マス周辺の生存数が、ここで指定した数と一致した時に「生存継続」「復活」するという動きになります!
今回の設定:両端はつながっている
ライフゲームでは「端をどのように判定するか」という問題があります。今回は↓のように「上下と左右で地球のようにつながっていている」ことを想定します。
つまり、↓のように上下端の赤い線同士で隣あっており、左右端の青線同士で隣り合っているものとします!
「ライフゲーム(カスタムルール)」計算シミュレーター!
- 上記説明の通り、「生存継続」「復活」する周辺生存数を選択できます
- ↓のようにマス目があり、ランダム生成ボタンを押すと↓ランダムに生存マスを生成します
- 黒率スライバーで、どれぐらいの率で黒(生存マス)を生成するかも指定可能です
- 実行/中断ボタンを押すと、動かしたり、一時停止したりできます。↓で何ターン目か確認できます
- 各マスはタッチ/クリックすると白黒反転するので、手動でマスの状態を設定することも可能です!中断して、追加することも可能です
- 周囲生存数表示をONにすると、各マスの隣接の生存数が紫色で表示できます。設定したルールによる判定で、次回生存になるマスは濃く表示されます
- ルールを変えてみて、おもしろいそうな動きをする独自ルールを見つけてみましょう!
生存継続となる周辺生存数
0 1 2 3 4 5 6 7 8
復活となる周辺生存数
0 1 2 3 4 5 6 7 8
周囲生存数表示 OFF ON
実験結果
実験してみるとわかりますが、生存可能数が多すぎると生存セルが多くなって安定しないし、少なすぎるとすぐに全て消滅してしまいます。
適切なバランスの良いルールを作るには結構難しかったりします。適当にルールをつくっても、今まで解説してきたような複雑で面白味のあるパターンは作れないんですね><
初期の生存マスの設定は、ランダムでなく、↓のように手動で数個設定したほうが良いです。
そのほうが、↓のような面白いパターンになりやすいようです。ぜひ、チャレンジしてみて下さい!
- 標準の2,3生存継続、3復活以外にもルールをつくれて、新たな生態系が作れる
⇒「ライフゲーム」カテゴリ記事一覧
その他関連カテゴリ
すごく面白い形が作れました。1⃣2⃣3⃣4⃣5⃣6⃣7⃣8⃣
生存継続:4以外
復活:4で市松模様にすると市松模様が点滅する