Skip to content

Commit 2a6b991

Browse files
Add files via upload
0 parents  commit 2a6b991

11 files changed

+3933
-0
lines changed

golca.nb

+2,328
Large diffs are not rendered by default.

golca.py

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from random import randint
2+
from pprint import pprint
3+
def newSum(A):
4+
r = 0
5+
for k in range(1,len(A)): r = r + A[k]
6+
return r
7+
liveSurv = lambda A: 1 if A[0]==1 and 2<=newSum(A)<=3 else 0
8+
deadSurv = lambda A: 1 if A[0]==0 and newSum(A)==3 else 0
9+
modThree = lambda k: -1 if k%3 == 2 else k%3
10+
def createGrid(n):
11+
grid = [[randint(0,1) for j in range(n)] for i in range(n)]
12+
backEnd = [[randint(0,1) for j in range(n)] for i in range(n)]
13+
return grid, backEnd
14+
def gameOfLife(grid,backEnd,step):
15+
neighbor = [0 for l in range(9)]
16+
n = len(grid)
17+
for i in range(step):
18+
for j in range(n):
19+
for k in range(n):
20+
for p in range(9):
21+
neighbor[p] = grid[(j+modThree(int(p/3)))%n][(k+modThree(p))%n]
22+
if neighbor[0] == 1: backEnd[j][k] = liveSurv(neighbor)
23+
elif neighbor[0] == 0: backEnd[j][k] = deadSurv(neighbor)
24+
for j in range(n):
25+
for k in range(n): grid[j][k] = backEnd[j][k]
26+
def driver():
27+
d = int(input("Enter the size of grid. "))
28+
grid, backEnd = createGrid(d)
29+
print("The initial state of the grid")
30+
pprint(grid)
31+
n = int(input("Enter the number of steps. "))
32+
gameOfLife(grid, backEnd, n)
33+
pprint(grid)
34+
# driver()

0 commit comments

Comments
 (0)