我怎样才能分别识别每个方块

问题描述 投票:0回答:1

我正在尝试创建一个扫雷游戏,我需要能够挑选出一个方块。

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

python tkinter
1个回答
0
投票

正如 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 函数替换为您想到的任何其他函数

© www.soinside.com 2019 - 2024. All rights reserved.