0
from tkinter import *
def callbackX(button, win, buttonNR):
print("Pressed button", buttonNR)
player1.append(buttonNR)
win.destroy()
gameScreen()
def gameScreen():
win = Tk()
#f = Frame(win)
if '1' in player1 == 'True':
b1 = Button(win, text="X", command=lambda: callbackX(b1, win, '1'))
b1.grid(row=0, column=0)
if '2' in player1 == 'True':
b2 = Button(win, text="X", command=lambda: callbackX(b2, win, '2'))
b2.grid(row=0, column=1)
if '3' in player1 == 'True':
b3 = Button(win, text="X", command=lambda: callbackX(b3, win, '3'))
b3.grid(row=0, column=2)
if '4' in player1 == 'True':
b4 = Button(win, text="X", command=lambda: callbackX(b4, win, '4'))
b4.grid(row=1, column=0)
if '5' in player1 == 'True':
b5 = Button(win, text="X", command=lambda: callbackX(b5, win, '5'))
b5.grid(row=1, column=1)
if '6' in player1 == 'True':
b6 = Button(win, text="X", command=lambda: callbackX(b6, win, '6'))
b6.grid(row=1, column=2)
if '7' in player1 == 'True':
b7 = Button(win, text="X", command=lambda: callbackX(b7, win, '7'))
b7.grid(row=2, column=0)
if '8' in player1 == 'True':
b8 = Button(win, text="X", command=lambda: callbackX(b8, win, '8'))
b8.grid(row=2, column=1)
if '9' in player1 == 'True':
b9 = Button(win, text="X", command=lambda: callbackX(b9, win, '9'))
b9.grid(row=2, column=2)
player1 = []; player2 = []
gameScreen()
该程序似乎无法识别if语句标准得到满足。这是否是某种Tkinter怪癖?这怎么解决?Python Tkinter:如果语句不起作用
代码应该打开一个井字棋游戏画面,对于player1来说,它关闭并重新打开窗口,而没有按下之前按下的按钮。
请描述'player1 =='True''中的if'1'应该做什么 –
当按钮被按下时,按钮的数字(buttonNR)将被添加到player1数组中。目标是在窗口被销毁并重新打开之后,它将再次显示游戏屏幕,而没有先前按下的按钮。 –