【发布时间】:2016-03-06 03:51:23
【问题描述】:
我是一个使用海龟制作纸牌的二十一点游戏,每次我玩一只手龟时都会打印上一场游戏而不是清除窗口。是否有一种方法可以在调用时关闭窗口,或者还有其他原因吗?
【问题讨论】:
-
对不起,如果我误会了,你想要
turtle.clear()吗? -
据我所知,turtle.clear() 只会删除海龟画的最后一件事。我需要删除多个东西。
我是一个使用海龟制作纸牌的二十一点游戏,每次我玩一只手龟时都会打印上一场游戏而不是清除窗口。是否有一种方法可以在调用时关闭窗口,或者还有其他原因吗?
【问题讨论】:
turtle.clear()吗?
我想澄清一下各种乌龟函数的作用,因为在这个讨论中存在误解,包括在当前接受的答案中,因为方法名称本身可能会造成混淆:
turtle.mainloop() aka turtle.Screen().mainloop() 将控制权交给 tkinter 的事件循环。通常,缺少turtle.Screen().mainloop()(或turtle.Screen().exitonclick()等)会导致窗口关闭,因为程序将结束,关闭所有内容。除非脚本是从 Python IDLE -n 中运行的,否则它或其变体应该是海龟图形程序中的最后一条语句。
turtle.done()(不关闭窗口或重置任何内容。)turtle.mainloop() 的同义词
turtle.clear() 删除 this 乌龟绘制的所有内容(不仅仅是最后一件事)。否则不影响乌龟的状态。
turtle.reset() 执行turtle.clear() 然后重置this海龟的状态(即方向、位置等)
turtle.clearscreen() aka turtle.Screen().clear() 删除所有绘图和所有海龟,将窗口重置为原始状态。
turtle.resetscreen() aka turtle.Screen().reset() 将屏幕上的所有海龟重置为其初始状态。
turtle.bye() aka turtle.Screen().bye() 关闭海龟图形窗口。调用此命令后,我看不到使用任何海龟图形命令的方法。
turtle.exitonclick() aka turtle.Screen().exitonclick() 绑定屏幕点击事件后执行turtle.Screen().bye() 调用turtle.Screen().mainloop()
不清楚是否可以从 turtle 内部关闭和重新打开图形窗口,而不会下降到支持 turtle(和 Zelle 的 graphics.py)的 tkinter 级别
为了在您的二十一点游戏中开始新的一手牌,我猜turtle.reset() 或turtle.resetscreen() 是您最好的选择。
【讨论】:
turtle.clear()
turtle.reset()
【讨论】: