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 quirkですか?どのようにこれを修正することができますか?Python Tkinter:If文が動作しない
このコードでは、以前押されたボタンを使わずに、ウィンドウを閉じて再オープンする、player-1のtic-tac-toeゲーム画面が開きます。
player1で== 'True'を実行するとどうなるか説明してください –
ボタンを押すと、ボタンの番号(buttonNR)がplayer1の配列に追加されます。目標は、ウィンドウが破棄され、再オープンされた後、以前に押されたボタンなしでゲーム画面を再び表示します。 –