3
我想寫一個程序使用python的龜創建一個層級的樹。下面是一些I/O,所以你可以看到它是做什麼的。Python Turtle遞歸樹
我的程序適用於第一種情況,但打印太多的第二種情況。該方案的規定是:
必須是遞歸
只能使用下面的龜功能:
turtle.forward(100) <-- turtle goes forward 100 steps turtle.right(90) <-- turtle turns right 90 degrees turtle.penup() <-- turtle lifts its pen up off of the paper turtle.forward(100) <-- turtle goes forward 100 steps turtle.pendown() <-- turtle puts its pen down on the paper turtle.pencolor("red") <-- turtle uses red pen turtle.circle(100) <-- turtle draws circle of radius 100 turtle.pencolor("blue") <-- turtle changes to blue pen (most other common colors work too!) turtle.forward(50) <-- turtle moves forward 50 steps turtle.xcor() <-- turtle returns its current x-coordinate turtle.ycor() <-- turtle returns its current y-coordinate
我的計劃:
import turtle
def tree(length,n):
""" paints a branch of a tree with 2 smaller branches, like an Y"""
if length < (length/n):
return # escape the function
turtle.forward(length) # paint the thik branch of the tree
turtle.left(45) # rotate left for smaller "fork" branch
tree(length * 0.5,length/n) # create a smaller branch with 1/2 the lenght of the parent branch
turtle.right(90) # rotoate right for smaller "fork" branch
tree(length * 0.5,length/n) # create second smaller branch
turtle.left(45) # rotate back to original heading
turtle.backward(length) # move back to original position
return # leave the function, continue with calling program
我不知道龜是建在蟒蛇。你已經完成了我的一天。 – BostonJohn
很高興我可以:) – user1681664