June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
62
Task/Conways-Game-of-Life/Python/conways-game-of-life-3.py
Normal file
62
Task/Conways-Game-of-Life/Python/conways-game-of-life-3.py
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
import numpy as np
|
||||
from pandas import DataFrame
|
||||
import matplotlib.pyplot as plt
|
||||
#import time
|
||||
|
||||
def conway_life(len=10, wid=10, gen=5):
|
||||
|
||||
curr_gen = DataFrame(np.random.randint(0, 2, (len+2, wid+2)),
|
||||
index = range(len+2),
|
||||
columns = range(wid+2))
|
||||
curr_gen[0] = 0
|
||||
curr_gen[wid+1] = 0
|
||||
curr_gen[0: 1] = 0
|
||||
curr_gen[len+1: len+2] = 0
|
||||
|
||||
for i in range(gen):
|
||||
|
||||
fig, ax = plt.subplots()
|
||||
draw = curr_gen[1:len+1].drop([0, wid+1], axis=1)
|
||||
# 画图
|
||||
|
||||
image = draw
|
||||
ax.imshow(image, cmap=plt.cm.cool, interpolation='nearest')
|
||||
ax.set_title("Conway's game of life.")
|
||||
|
||||
# Move left and bottom spines outward by 10 points
|
||||
ax.spines['left'].set_position(('outward', 10))
|
||||
ax.spines['bottom'].set_position(('outward', 10))
|
||||
# Hide the right and top spines
|
||||
ax.spines['right'].set_visible(False)
|
||||
ax.spines['top'].set_visible(False)
|
||||
# Only show ticks on the left and bottom spines
|
||||
ax.yaxis.set_ticks_position('left')
|
||||
ax.xaxis.set_ticks_position('bottom')
|
||||
|
||||
plt.show()
|
||||
# time.sleep(1)
|
||||
|
||||
|
||||
# 初始化空表
|
||||
next_gen = DataFrame(np.random.randint(0, 1, (len+2, wid+2)),
|
||||
index = range(len+2),
|
||||
columns = range(wid+2))
|
||||
|
||||
|
||||
# 生成下一代
|
||||
for x in range(1, wid+1):
|
||||
for y in range(1, len+1):
|
||||
env = (curr_gen[x-1][y-1] + curr_gen[x][y-1] +
|
||||
curr_gen[x+1][y-1]+ curr_gen[x-1][y] +
|
||||
curr_gen[x+1][y] + curr_gen[x-1][y+1] +
|
||||
curr_gen[x][y+1] + curr_gen[x+1][y+1])
|
||||
|
||||
if (not curr_gen[x][y] and env == 3):
|
||||
next_gen[x][y] = 1
|
||||
if (curr_gen[x][y] and env in (2, 3)):
|
||||
next_gen[x][y] = 1
|
||||
|
||||
curr_gen = next_gen
|
||||
|
||||
|
||||
conway_life()
|
||||
Loading…
Add table
Add a link
Reference in a new issue