Die Ausgabe stimmt nicht.
Code: Alles auswählen
#am Rand tote Zellen oder Globusförmiges Spielfeld?
def isTrue(liste,index,unter):
try:
if liste[index][unter]==True:
return True
elif liste[index][unter]==False:
return False
except IndexError:
return False
def anzahlnachbarn(liste,index,unter):
listen=[liste,liste,liste,liste,liste,liste,liste,liste]
indexe=[index-1,index-1,index-1,index,index,index+1,index+1,index+1]
unterindexe=[unter-1,unter,unter+1,unter-1,unter+1,unter-1,unter,unter+1]
return len([True for l in listen for i in indexe for u in unterindexe if isTrue(l,i,u)])
def neueGeneration(liste):
neueliste=[]
temp=[]
for s in liste:
for t in liste:
nachbarn=anzahlnachbarn(liste,liste.index(s),liste.index(t))
if t:
if nachbarn<2:
temp.append(False)
elif nachbarn in (2,3):
temp.append(True)
elif nachbarn > 3:
temp.append(False)
else:
if nachbarn==3:
temp.append(True)
neueliste.append(temp)
return neueliste
def main():
Zeilenanzahl=int(input("Wie viele Zeilen soll ihr Feld haben? "))
print()
print("""Bitte geben sie ihr Feld ein. Es soll rechteckig sein.
Ein "x" kennzeichnet eine lebendige Zelle ein "o" eine tote Zelle""")
Spielfeld=[]
for i in range(Zeilenanzahl):
Spielfeld.append(input())
Spielfeld2=[]
temp=[]
for n in Spielfeld:
for s in n:
if s=="x":
temp.append(True)
elif s=="o":
temp.append(False)
Spielfeld2.append(temp)
temp=[]
Spielfeld=Spielfeld2
print(neueGeneration(Spielfeld))
if __name__ == "__main__":
main()