我试图用图形在python中编写生活游戏,但如果不单独创建方框,我就无法在我创建的网格中给出每个矩形:
from graphics import *
import tkinter
import time
#create a window:
win = GraphWin('Game Of Life', 600, 600)
x = 0
y = 0
#create a grid:
for count in range(20):
for count in range(20):
rect = Rectangle(Point(x, y), Point((x + 20), (y + 20)))
rect.setOutline('black')
rect.setFill('white')
rect.draw(win)
x = x + 20
x = 0
y = y + 20
#define updating a rectangle:
def update(a):
if a.config["fill"] == "black":
a.setFill('white')
if a.config["fill"] == "white":
a.setFill('black')
因为您试图在同一个变量中创建所有这些矩形,所以每个新矩形都会覆盖以前的矩形。
您可以尝试将这些矩形添加到列表或其他数据类型中,以便对其进行存储。
也许是这样的:
from graphics import *
import tkinter
import time
#list of rectangles
rect = []
#create a window:
win = GraphWin('Game Of Life', 600, 600)
x = 0
y = 0
#create a grid:
for count in range(20):
for count in range(20):
rect.append(Rectangle(Point(x, y), Point((x + 20), (y + 20))))
rect[-1].setOutline('black')
rect[-1].setFill('white')
rect[-1].draw(win)
x = x + 20
x = 0
y = y + 20
#define updating a rectangle:
def update(a):
if a.config["fill"] == "black":
a.setFill('white')
if a.config["fill"] == "white":
a.setFill('black')
矩形被附加到列表中,然后我们使用rect[-1]访问它。