Ich versuche, eine Funktion nextGen
schreiben, die ein einzelnes Argument (das aktuelle Raster) nimmt und dann berechnet, aber das neue Raster nicht gedruckt. Im Grunde bin ich nicht sicher, wie man das Überprüfungsbit macht, wo es die 9 umgebenden Zellen überprüft. Zuerst dachte ich, ich könnte ein Basisgitter erstellen, das komplett aus Nullen besteht und zwei Zeilen und zwei Spalten größer als das aktuelle Gitter ist, so dass es ein Rand von Nullen wäre, aber ich kann nicht herausfinden, wie man die Anfangsgitterwerte erhält in das Grundraster. Mein aktueller Code ist:Conways Spiel des Lebens: Wie initialisiert man das Gitter?
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)
Könnte mir jemand helfen? Ich bin ein Anfänger bei Python, also wenn jemand erklären könnte, wie man mit einfachen Python-Funktionen macht, wäre das großartig.
Wenn Sie GoL-Gitter doppelt gewickelt ist, dann müssen Sie die Nachbarn über das Gitter überprüfen. – DyZ