Springen naar inhoud

Game of life


  • Log in om te kunnen reageren

#1

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 20 februari 2008 - 11:31

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
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

Veranderd door jhnbk, 20 februari 2008 - 11:32

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.

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.




0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures