Питон - игра жизни - PullRequest
       11

Питон - игра жизни

0 голосов
/ 26 февраля 2019

Я очень плохо знаком с использованием python, и это мой первый год его изучения.Мне дали задание воссоздать игру жизни.Тем не менее, я столкнулся с проблемой создания сетки в графическом интерфейсе, в которой я хочу скопировать случайную генерацию массива.Где бы он ни был, я пытаюсь заставить квадрат стать зеленым, и всякий раз, когда обнаруживается ноль, он должен быть красным.Я изо всех сил пытаюсь понять, как связать графический интерфейс с массивом 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()
...