问题描述
我在使用自动机-生活游戏时遇到问题。好吧,我有一张图像,可以将其转换为2d矩阵。在此图像的中间有一个振荡器。如规则所述,此函数的输出应为另一个振荡器,但应旋转90度。不幸的是我的输出是错误的。您可以在下面的图像上看到。代码有什么问题?您能帮我解决这个问题吗?
def osc(tab,x,y):
tab[x-1,y-1] = 0
tab[x-1,y] = 1
tab[x-1,y+1] = 0
tab[x,y-1] = 0
tab[x,y] = 1
tab[x,y+1] = 0
tab[x+1,y-1] = 0
tab[x+1,y] = 1
tab[x+1,y+1] = 0
return tab
def gol():
tab_x = 50
tab_y = 50
x = 25
y = 25
tab = np.zeros([tab_x,tab_y])
new_tab = osc(tab,y)
for y in range(0,tab_y):
for x in range(0,tab_x):
if new_tab[y,x] == 1:
new_tab[y,x] = 0
else:
new_tab[y,x] = 255
cv2.imwrite('anMD.jpg',new_tab)
canvas.delete("all")
cv2.imwrite('show.jpg',new_tab)
image = Image.open('show.jpg')
new_image = image.resize((500,500))
new_image.save('show.jpg')
dimg = ImageTk.PhotoImage(Image.open('show.jpg'))
canvas.create_image(0,anchor='nw',image=dimg)
canvas.image = dimg
def sim():
tab = cv2.imread(jpg_path,0)
tab_x = tab.shape[0]
tab_y = tab.shape[1]
new_tab = np.zeros_like(tab)
for x in range(0,tab_x):
for y in range(0,tab_y):
if tab[x,y] == 255:
tab[x,y] = 0
else:
tab[x,y] = 1
for x in range(tab_x):
for y in range(tab_y):
"""summary = 0
summary += tab[x - 1,y - 1]
summary += tab[x - 1,y]
summary += tab[x - 1,y + 1]
summary += tab[x,y - 1]
summary += tab[x,y + 1]
summary += tab[x + 1,y - 1]
summary += tab[x + 1,y]
summary += tab[x + 1,y + 1]"""
summary = (tab[x,(y-1) % tab_y] + tab[x,(y+1) % tab_y] +
tab[(x-1) % tab_x,y] + tab[(x+1) % tab_x,y] +
tab[(x-1) % tab_x,(y-1) % tab_y] + tab[(x-1) % tab_x,(y+1) % tab_y] +
tab[(x+1) % tab_x,(y-1) % tab_y] + tab[(x+1) % tab_x,(y+1) % tab_y])
if tab[x,y] == 1:
if (summary < 2) or (summary > 3):
new_tab[x,y] = 0
else:
new_tab[x,y] = 1
else:
if summary == 3:
new_tab[x,y] = 1
for y in range(0,x] = 255
for x in range (tab_x):
for y in range (tab_y):
tab[x,y] = new_tab[x,y]
cv2.imwrite('anMD.jpg',new_tab)
cv2.imwrite('show.jpg',500))
new_image.save('show.jpg')
canvas.delete("all")
dimg = ImageTk.PhotoImage(Image.open('show.jpg'))
canvas.create_image(0,image=dimg)
canvas.image = dimg
编辑:我要添加更多功能,也许有问题。现在我的代码如下:
year <- c(1939,1939,1940,1940)
degree_days <- c(184,187,190,185,189,190)
mean_temp <- c(14,15,16,10,11,12)
这是原始的50x50输入和输出。 original input original output
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)