It's my implementation. Can I get some opinions on it?
import random
import os
import time
class Game:
def __init__(self, turns, w, h):
self.board = []
for x in range(0, h):
self.board.append([])
for y in range(0, w):
self.board[x].append(random.random())
self.turns = turns
def next_gen(self):
self.board_next = []
for x in range(0, len(self.board)):
self.board_next.append([])
for x in range(0, len(self.board)):
for y in range(0, len(self.board[x])):
n = 0
for dx in range(-1, 2):
for dy in range(-1, 2):
if (dx == 0 and dy == 0):
pass
else:
try:
if (x + dx >= 0 and y + dy >= 0):
if (self.board[x + dx][y + dy]):
n += 1
except IndexError:
pass
c = self.board[x][y]
if (n == 1 or n == 0):
c = 0
elif (n == 3):
c = 1
elif (n == 2):
pass
else:
c = 0
self.board_next[x].append(c)
self.board = self.board_next[:]
def show(self):
for x in range(0, len(self.board)):
l = ""
for y in range(0, len(self.board[x])):
if (self.board[x][y]):
l += "X"
else:
l += "#"
print(l)
time.sleep(0.5)
def start(self):
for x in range(0, self.turns):
print("\n+Gen {0}".format(x + 1))
self.show()
if (x + 1 != self.turns):
os.system('clear')
self.next_gen()
os.system('clear')
game = Game(3, 3, 3)
game.board = [
[0, 0, 0],
[1, 1, 1],
[0, 0, 0]]
game.start()
And output:
+Gen 1
###
XXX
###
+Gen 2
#X#
#X#
#X#
+Gen 3
###
XXX
###