今、私は他のstackoverflow Game of Lifeの質問を読み、貪欲にグーグルで検索しました.私は、Game Of LifeのPython実装のために何をすべきかを知っています.グリッド内のアクティブなセルを追跡したい.問題は私がどのようにコーディングすればよいかで立ち往生しています。
これが私が考えたものですが、それを超えてちょっと機知に富んでいました:
アクティブなデッドまたはアライブのセル座標タプルで構成される ActiveCell リストを維持します。- 次世代を計算するときは、ActiveCell リストを反復処理し、セルの状態を計算し、状態が変化するかどうかを確認します。
- 状態が変化した場合、現在のすべての隣接セルをリストに追加します
- そうでない場合は、そのセルをリストから削除します
- ここでの問題は次のとおりです: (" . "-> other cell)
A が 3) を満たす場合、B、C、D を追加し、
B も 3) に対して true を返す場合、A、C を再度追加することを意味します (重複)
B C D
. A .
. . .
OrderedSet などを使用して順序を処理し、重複を回避することを検討しましたが、それでもこれらの問題にぶつかりました。方向性が必要です。