Game of life

Moderators: jkien, Xilvo

Reageer
Gebruikersavatar
Berichten: 6.905

Game of life

Ik had weer even tijd te veel en ben begonnen met een game of life te schrijven

1 0 0 1 1 0 0 1 1 0

0 1 1 0 1 0 0 1 0 1

1 0 0 1 1 1 1 1 0 0

0 1 0 0 1 1 1 1 1 1

0 0 1 1 1 1 0 0 1 1

0 0 1 0 1 1 1 1 0 1

1 0 0 0 0 0 1 1 0 1

0 0 0 1 1 1 1 0 1 1

1 0 1 1 1 1 0 1 1 0

1 1 1 0 0 1 0 1 1 0

0 0 1 0 1 0 0 1 0 1

0 0 0 1 0 0 1 1 1 0

0 0 1 0 0 0 0 0 0 0

0 0 1 1 0 0 0 0 0 1

1 1 0 0 0 0 0 1 0 0

1 0 1 1 0 0 0 1 1 0

0 0 1 0 1 0 0 0 0 1

1 0 1 0 0 1 0 0 0 1

0 1 1 1 0 0 0 0 1 1

1 0 1 1 1 0 1 1 0 1

De vette cel zou in de volgende generatie levend moeten worden om dat het 3 levende buren heeft. Dit blijkt mis te lopen. Alhoewel ik denk dat op dat gebied mijn code klopt is er dus toch een fout in geslopen, ziet iemand deze. (Nog even de regels van het spel voor diegen die het niet kennen
Verborgen inhoud
1. Any live cell with fewer than two live neighbours dies, as if by loneliness.

2. Any live cell with more than three live neighbours dies, as if by overcrowding.

3. Any live cell with two or three live neighbours lives, unchanged, to the next generation.

4. Any dead cell with exactly three live neighbours comes to life.
)

Taal:python

Code: Selecteer alles

class cell:

def __init__(self,now=True,next=False):

self.now=now

self.next=next

class life:

def __init__(self,w,h):

self.board=[[cell(randBool()) for i in range(w)] for j in range(h)]

def nextgeneration(self):

for row in range(len(self.board)):

for col in range(len(self.board[row])):

n=0

for i in [-1,1,0]:

for j in [-1,1,0]:

if not (i==0 and j==0):

try:

if self.board[row+i][col+i].now==True:

n+=1

except IndexError:

pass

if self.board[row][col].now==True:

if n<2 or n>3:

self.board[row][col].next=False

else:

self.board[row][col].next=True

else:

if n==3:

self.board[row][col].next=True

else:

self.board[row][col].next=False

for row in range(len(self.board)):

for col in range(len(self.board[row])):

self.board[row][col].now=self.board[row][col].next

def printboard(self):

for row in range(len(self.board)):

for col in range(len(self.board[row])):

if self.board[row][col].now==True:

print "1",

else:

print "0",

print
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

Reageer