我目前正在做一项使用类在python中制作扫雷游戏的任务。对于作业的骨干,我们只是想导入教授预制课程并创建我们自己的主要功能,使课程运作。我们不允许看到课程背后的代码,只需要完成每个课程中描述的内容。
init 方法被描述为构建游戏板,该游戏板是具有由问号图像填充并且具有(自身,大小)参数的单元格的正方形。 hideMines方法是在游戏板上隐藏地雷并返回一个bool,指示是否成功并使用参数(self,num)。最后一个是探测方法,它找到鼠标点击最近的单元格并显示其图标,并返回一个元组,显示探测的单元格数和剩余的地雷数并使用参数(self,x,y)。在我的代码的这一点上,创建了电路板,一旦我输入了隐藏地雷的提示,电路板上的中间单元就会自动被发现而点击什么都不做。我的问题是,在给出少量信息的情况下,我需要做什么才能使点击正确地发现图标?
import turtle
import game
def main():
wn = turtle.Screen()
board = wn.numinput("Numeric Input", "Enter desired board size: ")
board = int(board)
mine = game.Game(board)
nummine = wn.numinput("Numeric Input", "Enter desired number of mines: ")
nummine = int(nummine)
mine.hideMines(nummine)
def closure():
(find,rem) = mine.probe(board,board)
if rem == 0:
over = wn.textinput("Text Input", "Would you like to play again? (Y)es or (N)o")
if over == 'Y':
main()
else:
turtle.bye()
s = wn.getscreen()
s.onscreenclick(closure())
main()的
答案 0 :(得分:1)
我猜您可能需要以下代码。没有game.py
我无法确定它是否有效。无论如何快乐编码...
import turtle
import game
def main():
def closure(x, y):
find, rem = mine.probe(x, y)
if rem == 0:
over = turtle.getscreen().textinput("Text Input", "Would you like to play again? (Y)es or (N)o")
if over and over[0] == 'Y':
# Some codes for resetting the board
pass
else:
turtle.bye()
wn = turtle.Screen()
board = wn.numinput("Numeric Input", "Enter desired board size: ")
board = int(board)
mine = game.Game(board)
nummine = wn.numinput("Numeric Input", "Enter desired number of mines: ")
nummine = int(nummine)
mine.hideMines(nummine)
wn.onscreenclick(closure)
wn.mainloop()
main()
[更新] 为避免全局mine
,closure()
进入main()
。