ich habe gerade angefangen mit Python zu programmieren, ist auch meine erste Sprache.
Jetzt bin ich dabei das Game of Life zu programmieren habe aber das Problem nicht zu wissen wie man die Generationen wiederholt also das er das Spiel immer wieder ausführt.Ich verwende kein Numpy, da ich das ohne machen muss.
Code: Alles auswählen
from random import *
import os
import time
def clear():
print("\n" * 10)
def Ausgabe(feld,x,y):
clear()
os.system('CLS')
for i in range (y):
zeile=""
for j in range (x) :
zeile=zeile+str(feld[i][j])
print(zeile)
time.sleep(1)
def feldCopy(feld1, feld2, x, y):
clear()
for i in range (y):
for j in range (x) :
feld2[i][j]=feld1[i][j]
def Neumann(feld,x,y):
counter=0
if feld[x+1][y] == 1:
counter +=1
if feld[x-1][y] == 1:
counter +=1
if feld[x][y+1] == 1:
counter +=1
if feld[x][y-1] == 1:
counter +=1
if feld[x+1][y] == 0:
counter +=0
if feld[x-1][y] == 0:
counter +=0
if feld[x][y+1] == 0:
counter +=0
if feld[x][y-1] == 0:
counter +=0
if counter <2:
return 0
if counter >3:
return 0
if counter == 2:
return 1
if counter == 3:
return 1
def nextGen(feld, x, y):
for y in range(1,y-1):
for x in range(1,x-1):
if feld[x][y] == 1:
if Neumann(feld,x,y) == 0:
return 0
if feld[x][y] == 1:
if Neumann(feld,x,y) == 1:
return 1
if feld[x][y] == 0:
if Neumann(feld,x,y) == 1:
return 1
from random import choice as c
l = list(set(range(-1,1)) ^ set((-1,1)))
x = 5
y= 5
Generationen = 5
feld1 = [[c(l) for j in range(x)] for i in range(y)]
feld2 = [[c(l) for j in range(x)] for i in range(y)]
Ausgabe(feld1,x,y)
nextGen(feld2,x,y)
feldCopy(feld1,feld2,x,y)