【发布时间】:2014-08-13 04:33:31
【问题描述】:
我刚刚在 Python 中调试了我的大部分 MineSweeper 代码,但决定输赢的游戏函数存在问题。如果我赢了,它不会显示所需的消息框并确认中奖。如果我输了,它会显示一条错误消息,指出消息框(一个 tkinter 内置函数)未定义。
这是我的游戏代码:
from tkinter import *
import random
...
def CheckWin(self):
'''Checks if player won'''
doneList = []
for key in self.cells.keys():
if self.cells[key].clicked == True and self.cells[key].value != 9:
doneList.append(self.cells[key])
if len(doneList) == int(height)*int(width)-int(numBombs):
messagebox.showinfo('Minesweeper','Congratulations -- you won!', parent=self)
self.winner = True
def CheckLoss(self):
'''Checks if player lost'''
self.loser = True
self.flagTrack['text'] = '0'
messagebox.showerror('Minesweeper','KABOOM! You lose.', parent=self)
for key in self.cells.keys():
if self.cells[key].value == 9:
self.cells[key].flagged = False
self.cells[key].expose()
【问题讨论】:
-
以后不要发布所有代码;只需发布MCVE,就足以成功证明您的问题。例如,启动一个空窗口然后尝试调用
messagebox.showerror()的 5 行程序会向我们显示完全相同的内容,但我们绝对可以确定问题出在这 5 行代码中。跨度>
标签: python tkinter minesweeper