samedi 30 juillet 2016

Python Tkinter: If-statement not working

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()

The program doesn't seem to recognize the if-statement criterion being met. Is this some sort of Tkinter quirk? How can this be fixed?

The code should open a tic-tac-toe game screen, for player1, which closes and reopens the window, without the button that was previously pressed.

Aucun commentaire:

Enregistrer un commentaire