我想用turtle用递归来画这个:
但我真的不擅长这个。我得到的是:
import turtle
def draw_shape(t, level,size):
if level == 1: #draws an I
t.down()
t.forward(size/2)
t.left(90)
t.forward(size/2)
t.back(size)
t.forward(size/2)
t.left(90)
t.forward(size)
t.left(90)
t.forward(size/2)
t.back(size)
t.up()
t.forward(size/2)
t.left(90)
t.forward(size/2)
else:
draw_shape(t,level - 1,size)
t.back(size/2)
t.right(90)
t.forward(size/2)
t.left(90)
draw_shape(t,level - 1,size/2)
t.left(90)
t.forward(size)
t.right(90)
draw_shape(t,level-1,size/2)
t.right(90)
t.forward(size/2)
t.left(90)
t.forward(size)
t.right(90)
t.forward(size/2)
t.left(90)
draw_shape(t,level-1,size/2)
t.left(90)
t.forward(size)
t.right(90)
draw_shape(t,level-1,size/2)
def q1():
my_win = turtle.Screen()
my_turtle = turtle.Turtle()
my_turtle.speed(0.006)
my_turtle.left(90)
my_turtle.up()
my_turtle.back(200)
n = int(input('Draw shape at level: '))
draw_shape(my_turtle,n,200)
my_win.exitonclick()
q1()
几乎只想编辑draw_shape()函数。我在2级的时候做得很好,但是其他的级别开始变得不稳定,画错了尺寸,我在错误的位置,我想这是因为我的指针放在了I之后的位置。任何帮助都将不胜感激。在