私は、単一の引数(現在のグリッド)をとり、新しいグリッドを計算しますが、印刷しない関数nextGen
を作成しようとしています。基本的に、私はチェックビットをどのように行うのかはわかりません。チェックビットは周囲の9個のセルをチェックします。最初に、私は0の境界線になるように、現在のグリッドより2行2列大きい0の完全に作られたベースグリッドを作成できると思ったが、初期グリッドの値を取得する方法を理解することはできないベースグリッドに挿入します。現在のコードはConwayの人生のゲーム:グリッドを初期化するには?
def initlist(positions,initval):
newlist = []
for i in range(0,positions):
newlist.append(initval)
return newlist
def init2DTableV3(rows,cols,initval):
newrow = initlist(cols,initval)
table = initlist(rows,newrow)
return table
def nextGen(current_grid):
rows = len(current_grid)
cols = len(current_grid[0])
base_value = 0
base_grid = init2DTableV3(rows + 2, cols + 2, base_value)
import copy
init_newgrid = copy.deepcopy(current_grid)
私を助けてくれますか?私はPythonの初心者ですので、誰かが基本的なPython関数を使って偉大になる方法をnextGen
にする方法を説明できれば。
GoLグリッドが二重にラップされている場合は、グリッドの隣にあるグリッドをチェックする必要があります。 – DyZ