Tic-tac-toe使用python tkinter

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tic-tac-toe使用python tkinter相关的知识,希望对你有一定的参考价值。

使用python tkinter的Tic-tac-toe游戏无法正常工作。 Tic-tac-toe结构是正确的。我只是想改变点击事件。 单击任意按钮时仅显示button9输出

每次单击任何按钮,都会显示此输出

from tkinter import *

    bclick = True


    tk = Tk()
    tk.title("Tic Tac toe")
    tk.geometry("300x400")
    n = 9
    btns = []


    def ttt(button):
        global bclick
        print(button)
        if button["text"] == "" and bclick == True:
            print("if")
            button.config(text="X")
            bclick = False
        elif button["text"] == "" and bclick == False:
            print("else")
            button["text"] = "0"
            bclick = True


    for i in range(9):
        btns.append(Button(font=('Times 20 bold'), bg='white', fg='black', height=2, width=4))
    row = 1
    column = 0
    index = 1
    print(btns)
    buttons = StringVar()
    for i in btns:

        i.grid(row=row, column=column)
        i.config(command=lambda: ttt(i))
        print(i, i["command"])
        column += 1
        if index % 3 == 0:
            row += 1
            column = 0
        index += 1
    tk.mainloop()
答案

常见的错误。 lambda函数使用分配给i的最后一个值,因此每个lambda将使用i =。!button9。将lambda函数更改为:

i.config(command=lambda current_button=i: ttt(current_button))

这将使lambda在创建lambda时使用i的值。

以上是关于Tic-tac-toe使用python tkinter的主要内容,如果未能解决你的问题,请参考以下文章

将识别列表中的空字符串并在那里打印标记/符号的函数(Python Tic-Tac-Toe)

简单的Tic-Tac-Toe

Design Tic-Tac-Toe 解答

Design Tic-Tac-Toe

java 348.设计Tic-Tac-Toe(#1).java

java 348.设计Tic-Tac-Toe(#1).java