Python Conways Spiel des Lebens

Ich versuche, Conways Spiel des Lebens so zu gestalten, dass der Benutzer eingibt, wie groß das Raster sein soll und welche Zellen als lebendig beginnen. Folgendes habe ich:

def firstBoard(rows, cols, array):
    myList = [[0]*cols for i in range(rows)]
    for i in myList:
        i.append(-1)
        i.insert(0,-1)
    myList.insert(0,[-1]* (cols+2))
    myList.append([-1]* (cols+2))

    while True:
        rows = input("Enter the row or 'q': ")
        if rows == 'q':
            break
        cols = input("Enter the column: ")
        print()
        myList[int(rows)][int(cols)] = 1
    return myList

def nextGen(cols, rows, cur, nxt):
    for i in range(1,rows-1):
        for j in range(1,cols-1):
            nxt[i][j] = processNeighbours(i, j, cur)

def processNeighbours(x, y, array):
    nCount = 0
    for j in range(y-1,y+2):
        for i in range(x-1,x+2):
            if not(i == x and j == y):
                if array[i][j] != -1:
                    nCount += array[i][j]
    if array[x][y] == 1 and nCount < 2:
        return 0
    if array[x][y] == 1 and nCount > 3:
        return 0
    if array[x][y] == 0 and nCount == 3:
        return 1
    else:
        return array[x][y]

def printBoard(cols, rows, array):
    for i in range(rows+2):
        for j in range(cols+2):
            if array[i][j] == -1:
                print("#", end=" ")
            elif array[i][j] == 1:
                print(".", end=" ")
            else:
                print(" ", end=" ")
        print()


def main():
    rows = int(input("Please enter the number of rows: "))
    cols = int(input("Please enter the number of columns: "))
    myList = []
    newList = []
    myList = firstBoard(rows, cols, myList)
    newList = myList

    print()

    generations = int(input("How many iterations should I run? "))+1
    for gens in range(generations):
        printBoard(cols, rows, myList)
        nextGen(cols, rows, myList, newList)
        myList, newList = newList, myList

main()

Und wenn ich sowohl für die Zeilen als auch für die Spalten fünf eingebe und wenn ich 3,4 4,4 5,4 fülle, erhalte ich Folgendes:

# # # # # # #
#           #  
#           #
#       .   #
#       .   #
#       .   #
# # # # # # #
# # # # # # #
#           #
#           #
#       .   #
#       .   #
#       .   #
# # # # # # #
# # # # # # #
#           #
#           #
#       .   #
#       .   #
#       .   #
# # # # # # #
# # # # # # #
#           #
#           #
#       .   #
#       .   #
#       .   #
# # # # # # #

wenn für das zweite und vierte Kästchen die Punkte horizontal statt vertikal sein sollen. Bitte helfen Sie, ich habe den ganzen Tag daran gearbeitet und ich kann es nicht herausfinden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage