0
私はこのプログラムの各ステップを一時停止して熟考し、画面をクリックして次のステップに進むことができます。当初、私はたくさんのイベントを追加しようとしましたが、私の脳が蹴り込まれ、これは手続き型プログラムではなく、最初の拘束力が唯一のものになりました(!)。下のメインプログラム、どんな助けも大歓迎です。救助へのOOPについてPython Turtleがクリックを待つ
def tree(self, branchLen):
if branchLen > 5:
self.screen.onscreenclick(lambda x,y: self.t.forward(branchLen))
self.screen.onscreenclick(lambda x,y: self.t.right(20))
self.tree(branchLen-15)
self.screen.onscreenclick(lambda x,y: self.t.left(40))
self.tree(branchLen-15)
self.screen.onscreenclick(lambda x,y: self.t.right(20))
self.screen.onscreenclick(lambda x,y: self.t.backward(branchLen))
import turtle
class Tree(object):
def __init__(self):
self.t = turtle.Turtle()
self.screen = turtle.Screen()
self.t.left(90)
self.t.up()
self.t.backward(100)
self.t.down()
self.t.color("green")
self.tree(75)
def tree(self, branchLen):
if branchLen > 5:
self.t.forward(branchLen)
self.t.right(20)
self.tree(branchLen-15)
self.t.left(40)
self.tree(branchLen-15)
self.t.right(20)
self.t.backward(branchLen)
tree = Tree()
それはすごくうれしいです - ありがとう。 QueuedTurtleクラスを理解することは私のためにいくつかの真剣な研究をするつもりです。キューを改訂することから始めますが、これがどのように機能するかについての詳細は参考になります。例えば、 '_CFG'は何を参照していますか? – Robin
@Robin、 '__init__'メソッドの大部分がTurtleクラスからコピーされました.TurtleクラスはRawTurtleもサブクラス化しました。このメソッドへの唯一の追加は 'onclick'ハンドラの設定です。 '_CFG'は何らかの構成構造からの情報を受け取り、カメを初期化しています。タートルをエミュレートする以外はQueuedTurtleの機能には関係しません。 – cdlane