Hi,what's wrong with this code? I can't get response from server, is code wrong or too slow or what..thnx for answer.
def life_counter(state, tick_n):
c = ((1,0),(1, 1), (0, 1), (-1, 1), (-1, 0), (-1, -1), (0, -1), (1, -1))
state_a = map(list,state)
for i in range(tick_n):
if 1 in state_a[0]:
state_a.insert(0, [0] * len(state_a[0]))
if 1 in state_a[-1]:
state_a.append([0] * len(state_a[0]))
for i in range(len(state_a)):
if state_a[i][0] != 0:
map(lambda x: x.insert(0,0), state_a)
break
for i in range(len(state_a)):
if state_a[i][-1] != 0:
map(lambda x: x.append(0), state_a)
break
hd = len(state_a[0])
vd = len(state_a)
new_state = [[0] * len(state_a[0]) for n in range(len(state_a))]
for y in range(hd):
for x in range(vd):
neighbours = sum([1 for x1, y1 in c if x + x1 in range(vd) and
y + y1 in range(hd) and state_a[x + x1][y + y1] == 1])
if state_a[x][y] == 1:
if neighbours < 2:
new_state[x][y] = 0
elif neighbours == 2 or neighbours == 3:
new_state[x][y] = 1
else:
new_state[x][y] = 0
else:
if neighbours == 3:
new_state[x][y] = 1
state_a = new_state
return sum([sum(r) for r in new_state])
Created at: 2015/12/05 23:11; Updated at: 2015/12/18 15:56