我正在尝试创建一个扫雷游戏,我需要能够挑选出一个方块。
from tkinter import *
import random
startX = 0
startY = 0
game = Tk()
game.geometry('600x600')
game.title('Simon')
canvas = Canvas(game, width=600, height=600, bg='#13cce7')
canvas.pack()
for j in range(4):
for i in range(4):
tile = canvas.create_polygon(startX, startY, startX+150, startY, startX+150, startY+150, startX, startY+150, fill="grey", outline="black", width="5")
startY = startY+150
startY = 0
startX = startX+150
正如 David 在您的问题的评论中所建议的,我演示了矩形列表的用法(由 TheLizzard 建议):
from tkinter import *
startX = 0
startY = 0
game = Tk()
game.geometry('600x600')
game.title('Simon')
canvas = Canvas(game, width=600, height=600, bg='#13cce7')
canvas.pack()
tiles = [[canvas.create_rectangle(x * 150, y * 150, x * 150 + 150, y * 150 + 150, fill="grey", outline="black", width="5") for x in range(4)] for y in range(4)]
for row in tiles:
for tile in row:
canvas.tag_bind(tile, "<ButtonPress-1>", lambda event, tile=tile: event.widget.itemconfig(tile, fill="red"))
canvas.tag_bind(tile, "<ButtonRelease-1>", lambda event, tile=tile: event.widget.itemconfig(tile, fill="grey"))
game.mainloop()
您可以将 lambda 函数替换为您想到的任何其他函数