Skip to content

Commit 658210d

Browse files
Create Conway's_Game_of_Life_Unlimited_Edition.py
1 parent 65ebeff commit 658210d

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
def get_neighbours(x, y):
2+
return {(x + i, y + j) for i in range(-1, 2) for j in range(-1, 2)}
3+
4+
def get_generation(cells, generations):
5+
if not cells: return cells
6+
xm, ym, xM, yM = 0, 0, len(cells[0]) - 1, len(cells) - 1
7+
cells = {(x, y) for y, l in enumerate(cells) for x, c in enumerate(l) if c}
8+
for _ in range(generations):
9+
cells = {(x, y) for x in range(xm - 1, xM + 2) for y in range(ym - 1, yM + 2)
10+
if 2 < len(cells & get_neighbours(x, y)) < 4 + ((x, y) in cells)}
11+
xm, ym = min(x for x, y in cells), min(y for x, y in cells)
12+
xM, yM = max(x for x, y in cells), max(y for x, y in cells)
13+
return [[int((x, y) in cells) for x in range(xm, xM + 1)] for y in range(ym, yM + 1)]

0 commit comments

Comments
 (0)