Python-生活游戏

时间:2019-02-26 19:44:15

标签: python-3.x conways-game-of-life

我对使用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()

0 个答案:

没有答案