Messagebox停止更新窗口的函数(在前面调用)

2024-09-29 21:37:16 发布

您现在位置:Python中文网/ 问答频道 /正文

窗口不会在messagebox之前更新,但是会在messagebox之前调用更新函数(printBoard())

我有一个问题,一个tic-tac脚本对一个机器人,当有一个赢家或平局游戏程序显示给用户使用一个messagebox,但在我的代码中我调用函数printBoard(board),这更新了游戏的窗口。之后我调用messagebox.showinfo,但是消息框一出现,板就没有更新

(问题出在函数checkWinner(board)

def printBoard(board):
    bbuttons = [[0,0,0],[0,0,0],[0,0,0]]
    for y in range(0,3):
        for x in range(0,3):
            bbuttons[y][x] = Button(text=board[y][x], font= ('Arial',50))
            bbuttons[y][x].grid(row=y, column=x)
            bbuttons[y][x].config(height=1, width=3)

    return

if checkWinner(board) == 'X':
                o = printBoard(board)
                messagebox.showinfo("WON!", "YOU WON!")
                board = [[' ',' ',' '],[' ',' ',' '],[' ',' ',' ']]
                root.destroy()
                start()

输出:

[['X', 'X', 'O'], ['O', 'X', 'X'], ['X', 'O', 'O']]

我希望董事会已经更新,以便您可以看到例如三个x的一行(现在它不会了(当您单击最后一个磁贴时,它只会显示messagebox)

更新:现在我回家了,在我的Windows电脑上运行了这个脚本,它可以正常工作。它似乎是Mac专用的(我也在另一台Mac上测试过)


Tags: 函数inboard脚本游戏formacrange

热门问题