UISwitchでライフゲーム

UISwitchでライフゲームを作ってみました。

ライフゲームとは

ジョン・ホートン・コンウェイという人が作ったシミュレーションゲームで0と1で生死を判断し、生命の誕生、進化、絶滅を表したものです。詳しくは下記の動画が詳しくまとまっていてわかりやすいです。

つくった

ライフゲームを動画を見ている時にふと思いつきました。スイッチで作ればオンとオフで生死を判断できるし見た目ちょっとオシャレ?だし簡単そう!

というわけでUISwitchを使ってライフゲームを作成しました。Swiftのバージョンは4で作りました。レイアウトですが、つけるのが面倒だったためAutolayoutなどの制約をつけていません。なのでiphoneX以外の端末で実行するとレイアウトが崩れます。

動画

ロジック

ライフゲームには4つの基本ルールが存在します。
・誕生
 あるマスが死んでいる場合、周囲8セルの内3つのセルが生きていれば次の世代で新しい命が誕生
・生存
 あるマスが生きている場合、周囲8セルの内2つか3つのセルが生きていれば生存
・過疎
 あるマスが生きている場合、周囲8セルの内生きているセルが1セル以下の場合次の世代で死滅
・過密
 あるマスが生きている場合、周囲8セルの内生きているセルが4セル以上の場合次の世代で死滅

世代を進めるのはボタンのクリックで行っています。すべてのボタンをループで回し、生きているセルの数をnに格納して上記の4つの基本条件のどれに当たるかを判定しています。少ないコードでこんな複雑な動きをするライフゲームすごい。