在创建多个矩形(使用图形模块)时,在循环中为其指定不同的名称



我试图用图形在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]访问它。

最新更新