该窗口不会在消息框之前更新,但是会在消息框之前调用更新函数(printBoard())。
我在使用井字游戏来针对机器人编写脚本时遇到问题,当有赢家或平局游戏时,程序会使用消息框向用户显示该消息,但是在我的代码中,我调用了函数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。 (现在它不只是在您单击最后一个图块时显示消息框)
更新:现在我回到家,在Windows PC上运行了该脚本,它可以正常工作。似乎专门用于Mac(我也在另一台Mac上进行了测试)。