我想创建这样的输出:
我必须使用递归。
到目前为止,我的代码是这样的:from turtle import *
def drawFlake(length,depth):
fd(length)
input("first line done")
if depth>0:
left(60)
drawFlake(length/3,depth-1)
input("1")
left(120)
drawFlake(length/3,depth-1)
input("2")
left(120)
drawFlake(length/3,depth-1)
input("3")
left(120)
drawFlake(length/3,depth-1)
input("4")
left(120)
left(180)
#drawFlake(length/3,depth-1)
input("1")
left(120)
drawFlake(length/3,depth-1)
input("THIS IS THE LAST")
left(60)
left(180)
fd(length)
drawFlake(100,3)
这会产生这样的输出(这里,N=3)
问题是左边的那条长线。不应该排长队。相反,应该有另一个薄片图案
我做错什么了?
编辑:
这是我想出的更好的办法。但它仍然不完美:def doFigure(length,depth):
left(120)
fd(length)
if depth>1:
doFigure(length/3,depth-1)
bk(length)
right(60)
fd(length)
if depth>1:
doFigure(length/3,depth-1)
bk(length)
right(60)
fd(length)
if depth>1:
doFigure(length/3,depth-1)
bk(length)
right(60)
fd(length)
if depth>1:
doFigure(length/3,depth-1)
bk(length)
right(60)
fd(length)
if depth>1:
doFigure(length/3,depth-1)
bk(length)
right(60)
fd(length)
if depth == 3:
doFigure(length/3,depth-1)
bk(length)
right(180)
注意最后第五行。我必须硬编码值3才能得到正确的值。