Skip to content

Instantly share code, notes, and snippets.

@fyquah
Created April 28, 2015 09:50
Show Gist options
  • Save fyquah/1281dd47fea45d6d7c8c to your computer and use it in GitHub Desktop.
Save fyquah/1281dd47fea45d6d7c8c to your computer and use it in GitHub Desktop.
Game of Life
import random
def print_grid(grid):
for row in grid:
for cell in row:
print "* " if cell else " ",
print "\n"
def valid(grid, i, j):
return i >= 0 and i < len(grid) and j >= 0 and j < len(grid[0])
def count_adjacent(grid, i, j):
c = 0
for a in range(-1, 2):
for b in range(-1, 2):
if not(b == 0 and a == 0) and valid(grid, i+a, j+b):
c += grid[i+a][j+b]
return c
def step(grid):
new_grid = []
for i in range(len(grid)):
new = []
for j in range(len(grid[i])):
count = count_adjacent(grid, i, j)
if count == 3 or (grid[i][j] and count == 2):
new.append(1)
else:
new.append(0)
new_grid.append(new)
return new_grid
def play_game():
grid = []
for i in range(20):
new = []
for j in range(20):
new.append(0)
grid.append(new)
while True:
print_grid(grid)
raw_input()
grid = step(grid)
if __name__ == "__main__": play_game()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment