コンウェイのライフゲーム(Conway's Game of Life)を React で実装した、Single Page Application(SPA)です。
/app/src/
配下は、bulletproof-react の考え方に基づくディレクトリ構成を採用しています。
- ただし、テストコードは現状、
/app/tests/
配下で分けて管理しています(テスト用のtsconfig.json
を分けるため)。
GitHub Pages にアプリケーションをデプロイして公開しています。興味のある方はアクセスして、遊んでみてください。
- 画面の初期表示時は、セルがランダムに配置されます。
- セルの描画領域(シャーレ)のサイズは「縦128セル x 横128セル」で固定です。
- 各セルをクリックすることで、セルの生死状態を切り替えることができます。
- [Start]ボタンを押すと、ライフゲームのルールに基づくセルの生死判定と次世代セルの描画を自動で行います。
- 自動処理中は、[Stop]ボタンを押す以外の操作は行えません。
- [Stop]ボタンを押すと、生死判定および自動描画が停止します。
- [Next]ボタンを押すと、1世代分だけセルの生死判定と描画を行います。
- 現在の世代数は、画面上の
Generation is #N
の部分で確認できます(N
が世代数)。 - [Reset]ボタンを押すと、世代数とシャーレ上のセルの生死状態をリセットします。
- 世代数は0に、セルはすべて「死滅」状態にします。
- 特定のパターンを選択してシャーレ上に描画できます(初期値は「ランダム」)。
- 世代数の右横のプルダウンリストから、描画したいパターンを選択してください。
- 選択後、世代数とシャーレ上のセルの生死状態をリセットした後で、パターンを描画します。
- セルの生死状態をドラッグ操作によって変更することはできません。
- [Start]ボタン押下時の自動描画のスピードは固定です。変更することはできません。
- ダークモード・ライトモードでの表示に対応しています。