【发布时间】:2019-09-04 23:06:05
【问题描述】:
我正在尝试创建一个重复形状以使用海龟图形制作图案的函数。我不确定如何将代码更改为递归函数,这样我就不需要使用 for 循环来创建每个步骤。
到目前为止,我已经在中间创建了大致的形状,并且正在创建模式:
import turtle
t = turtle.Turtle()
t2 = turtle.Turtle()
t3 = turtle.Turtle()
t4 = turtle.Turtle()
t5 = turtle.Turtle()
t6 = turtle.Turtle()
t7 = turtle.Turtle()
t8 = turtle.Turtle()
t9 = turtle.Turtle()
t10 = turtle.Turtle()
t11 = turtle.Turtle()
t12 = turtle.Turtle()
for i in (t,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12):
i.speed(10)
def hex(rep):
if rep > 1:
for i in range(6):
t.forward(50)
t.left(60)
t.right(90)
t2.forward(50)
t2.right(90)
t3.forward(50)
t3.right(30)
for i in range(2):
for a in (t4, t5):
a.forward(50)
a.left(60)
t4.right(150)
t5.right(90)
for i in range(3):
for a in (t6, t7):
a.forward(50)
a.left(60)
t6.right(150)
t7.right(90)
for i in range(4):
for a in (t8, t9):
a.forward(50)
a.left(60)
t8.right(150)
t9.right(90)
for i in range(5):
for a in (t10, t11):
a.forward(50)
a.left(60)
t10.right(150)
t11.right(90)
t12.left(210)
for i in (t,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12):
i.forward(50)
t.left(90)
for i in range(12):
t.forward(50)
t.left(30)
t.right(90)
for i in (t,t3,t5,t7,t9,t11):
for a in range(9):
i.right(30)
i.forward(50)
hex(2)
最终结果应该是这样的模式:
【问题讨论】:
标签: python for-loop recursion turtle-graphics