我对使用python很陌生,这是我学习它的第一年。我被赋予重塑生活游戏的任务。但是,我在要复制随机生成的numpy数组的GUI中创建网格时遇到了问题。无论哪里有一个,我都试图使正方形变成绿色,并且每当检测到零时,它就应该是红色。我正在努力了解如何将GUI链接到numpy数组,以及如何使它们显示为绿色,零显示为红色。
我知道有更有效的方式来编码生活游戏,但是对于这个项目,我需要创建一个由我自己提出的版本,因此,我不打算寻求解决方案这个问题,而不是尝试重做整个事情。
下面是我写的一些代码。
非常感谢!
import tkinter as tk
import random
import numpy as np
from tkinter import *
a=int(input("enter x dimension of grid: "))
b=int(input("enter y dimension of grid: "))
new=np.random.randint(2, size=(a, b))
old=np.random.randint(2, size=(a, b))
#print(old)
#rules to be implemented here
print(new)
class Construction(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.canvas = tk.Canvas(self, width=500, height=500, borderwidth=0, highlightthickness=0)
self.canvas.pack(side="top", fill="both")
self.rows = 100
self.columns = 100
self.cellwidth = 25
self.cellheight = 25
self.rect = {}
for column in range(b):
for row in range(a):
x1 = column*self.cellwidth
y1 = row * self.cellheight
x2 = x1 + self.cellwidth
y2 = y1 + self.cellheight
self.rect[row,column] = self.canvas.create_rectangle(x1,y1,x2,y2, fill="red")
def change_colour(self):
for i in range([new], self.a):
for j in range([new], self.b):
if new[i,j] == 1:
self.rect[row,column] = self.canvas.create_rectangle(x1,y1,x2,y2, fill="green")
#root = Tk()
#def callback(self):
#canvas.itemconfig()
#b = Button(root, text="stop code", command=callback)
#b.pack()
if __name__ == "__main__":
app = Construction()
app.mainloop()