为了账号安全,请及时绑定邮箱和手机立即绑定

Tkinter 和 Tic-Tac-Toe 的问题

Tkinter 和 Tic-Tac-Toe 的问题

慕姐4208626 2021-09-11 10:14:15
我正在使用 Tkinter 编写一个井字游戏。当一个用户获胜时,会出现一个带有重新启动按钮的顶级窗口,该窗口必须重新启动程序,但是当我单击它时收到意外错误。我知道我的获胜者检查功能很愚蠢,但我可以用我目前的知识水平写一个更好的。错误信息:Exception in Tkinter callbackTraceback (most recent call last):  File "C:\Users\Eldiiar Raiymkulov\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 1699, in __call__    return self.func(*args)  File "C:\Users\Eldiiar Raiymkulov\Desktop\xo2.py", line 62, in <lambda>    command=lambda x=x, y=y: clicked(y, x)))  File "C:\Users\Eldiiar Raiymkulov\Desktop\xo2.py", line 15, in clicked    isWinner(char)  File "C:\Users\Eldiiar Raiymkulov\Desktop\xo2.py", line 46, in isWinner    topMessage(char)  File "C:\Users\Eldiiar Raiymkulov\Desktop\xo2.py", line 30, in topMessage    topButton = Button(top, text="Restart", command=restart(root))NameError: name 'root' is not defined这是代码:from tkinter import *turn = Truebtns = Nonedef clicked(y, x):    global turn, btns    char = ""    if turn:        char = "X"    else:        char = "O"    btns[y][x].config(text=char,                      state=DISABLED)    isWinner(char)    turn = not turndef restart(root):    global turn    turn = True    root.destroy()    main()def topMessage(char):    global root    top = Toplevel()    top.title("Congratulations!")    topText = Label(top, text=f"{char} is a winner!")    topButton = Button(top, text="Restart", command=restart(root))    topText.grid(row=0)    topButton.grid(row=1)def isWinner(char):    global root另外,如果您对 isWinner 函数有任何更明智的建议,可以与我分享吗?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信