web-dev-qa-db-ja.com

Python:タートルグラフィックスウィンドウをリセットする方法

私はタートルを使ったカードでブラックジャックゲームを作っています。ハンドタートルをプレイするたびに、ウィンドウをクリアするのではなく、最後のゲームを印刷するだけです。呼び出されたときにウィンドウを閉じるメソッドはありますか、それともこれを行う別の理由がありますか?

5
Allie Hart

メソッド名自体が混乱する可能性があるため、現在受け入れられている回答を含め、この議論には誤解があるため、さまざまなタートル関数が何をするのかを明らかにしたいと思います。


turtle.mainloop() aka turtle.Screen().mainloop()制御をtkinterのイベントループに切り替えます。通常、turtle.Screen().mainloop()(またはturtle.Screen().exitonclick()など)がないと、プログラムが終了したという理由だけでウィンドウが閉じ、すべてが閉じます。スクリプトがPython IDLE -n。

turtle.done()(ウィンドウを閉じたりリセットしたりしません。)turtle.mainloop()の同義語

turtle.clear()すべてを削除しますthis turtleが描画しました(最後のものだけではありません)。それ以外の場合は、カメの状態に影響を与えません。

turtle.reset()turtle.clear()を実行してから、リセットしますthisカメの状態(方向、位置など)

turtle.clearscreen() aka turtle.Screen().clear()all描画とallタートルを削除し、ウィンドウを元の状態にリセットします。

turtle.resetscreen() aka turtle.Screen().reset()リセットall画面上のカメを初期状態に戻します。

turtle.bye() aka turtle.Screen().bye()タートルグラフィックスウィンドウを閉じます。これが呼び出された後、タートルグラフィックスコマンドを使用する方法がわかりません。

turtle.exitonclick() aka turtle.Screen().exitonclick()画面クリックイベントをバインドした後、turtle.Screen().bye()を実行してturtle.Screen().mainloop()を呼び出します


Turtle(およびZelleのgraphics.py)を支えるtkinterレベルにドロップダウンせずに、turtle内からグラフィックウィンドウを閉じて再度開くことができるかどうかは明らかではありません。

ブラックジャックゲームで新しいハンドを開始するためには、turtle.reset()またはturtle.resetscreen()が最善の策だと思います。

8
cdlane