我正在使用乌龟制作一个二十一点游戏,每次我玩一只手龟只是打印在上一场比赛而不是清理窗口。是否有一种方法可以在调用窗口时关闭窗口,还是有另一种方法可以执行此操作?
答案 0 :(得分:8)
我想澄清各种乌龟函数的作用,因为在本次讨论中存在误解,包括在当前接受的答案中,因为方法名称本身可能令人困惑:
turtle.mainloop()
aka turtle.Screen().mainloop()
将控制权交给tkinter的事件循环。通常,缺少turtle.Screen().mainloop()
(或turtle.Screen().exitonclick()
等)将导致窗口关闭,因为程序将结束,关闭所有内容。除非脚本是在Python IDLE -n中运行的,否则这个或其变体之一应该是turtle图形程序中的最后一个语句。
turtle.done()
(不关闭窗口也不重置任何内容。)turtle.mainloop()
的同义词
turtle.clear()
删除这个乌龟所绘制的一切(不仅仅是最后一件事)。否则不会影响乌龟的状态。
turtle.reset()
是turtle.clear()
然后重置这个龟的状态(即方向,位置等)
turtle.clearscreen()
又名turtle.Screen().clear()
删除所有绘图和所有海龟,将窗口重置为原始状态。
turtle.resetscreen()
又名turtle.Screen().reset()
将屏幕上的所有海龟重置为初始状态。
turtle.bye()
又名turtle.Screen().bye()
关闭海龟图形窗口。在调用它之后,我没有看到使用任何海龟图形命令的方法。
turtle.exitonclick()
又名turtle.Screen().exitonclick()
绑定屏幕点击事件后执行turtle.Screen().bye()
调用turtle.Screen().mainloop()
目前尚不清楚你是否可以从乌龟内部关闭并重新打开图形窗口,而不会降到支撑龟的tkinter级别(和Zelle的graphics.py)
为了在二十一点游戏中开始新手,我猜你turtle.reset()
或turtle.resetscreen()
是最好的选择。
答案 1 :(得分:0)
impl<SPI, REMAP, PINS, CH> DeviceDriver<SpiTxDma<SPI, REMAP, PINS, CH>>
where SpiTxDma<SPI, REMAP, PINS, CH>: WriteDma<&'static mut [u8], u8>,
TxDma<SpiPayload<SPI, REMAP, PINS>, CH>: TransferPayload,
{
pub fn send(&mut self) {
if let (Some(spi), Some(buf)) = (self.spi.take(), self.buf.take()) {
let transfer = spi.write(buf);
let (buf, spi) = transfer.wait();
self.buf = Some(buf);
self.spi = Some(spi);
}
}
}
答案 2 :(得分:-2)
使用乌龟,它是lsm
。
如果您使用turtle.done()
进行python,我建议使用John Zelle's Graphics Library。要关闭窗口,请使用graphics
。如果您有兴趣,我已经链接了window.close()
库的文档。