【问题标题】:Can I assign a variable to an image made by a for loop in the loop? [closed]我可以为循环中的 for 循环生成的图像分配一个变量吗? [关闭]
【发布时间】:2018-11-09 02:57:39
【问题描述】:

我正在创建一个中国跳棋 AI 项目,我使用 for 循环创建了跳棋。我想问的是,是否可以通过 for 循环为我使用create_image 创建的每个检查器分配一个变量? 我使用此代码:

black = []
black = PhotoImage(file="black.gif")
black_sub = black.subsample(8, 8)
for i in range(4):
    black_id.append(i)

    canvas.create_image(425 + 24 * i,800 - 10 - 45 * i, anchor=S, 
    image=black_sub)

for i in range(4):

    black_id.append(i+4)

    canvas.create_image(425 - 24 * i,800 - 10 - 45 * i, anchor=S, 
    image=black_sub)

我可以将每个列表编号分配给它对应的检查器吗?

【问题讨论】:

  • 您应该为此使用列表。
  • 哦,对了。我在开头列出了一个列表。
  • 请提供一些您期望的结果。
  • 我希望我可以使用他们的 id 移动跳棋。我已经为 id 制作了一个列表,我想使用 for 循环分配 id,然后将它们放入列表中。
  • 检查器分配给变量的位置在哪里?

标签: python for-loop tkinter tkinter-canvas photoimage


【解决方案1】:

很难根据给定的信息来定义您的问题,但您不必获取 ID,因为它将是您的检查器列表的索引,因此您可以轻松获取任何带有其 ID 的检查器索引如下:

black = PhotoImage(file="black.gif")
black_sub = black.subsample(8, 8)
checkers = []

for i in range(4):
    checkers.append( 
                    canvas.create_image(425 + 24 * i,800 - 10 - 45 * i, anchor=S, 
                    image=black_sub) 
                    )

for i in range(4):
    checkers.append( 
                    canvas.create_image(425 - 24 * i,800 - 10 - 45 * i, anchor=S, 
                    image=black_sub) 
                    )

checkers[5].move(10,10) # get some of the checker based on its ID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    相关资源
    最近更新 更多