首页 > 解决方案 > 使用递归绘制正方形图案

问题描述

到目前为止,这是我在导师的大力帮助下编写的代码。

def square(t, x, y, side):
    t.up()
    t.goto(x-side/2, y+side/2)
    t.down()
    for i in range(4):
        t.forward(side)
        t.right(90)

def squares(t, x, y, size, n):
    if n == 0:
        return
    if n >= 1: 
        square(t, x, y, size)

        half = size / 2
        squares(t, x - half, y + half, size / 2.2, n - 1)
        squares(t, x + half, y + half, size / 2.2, n - 1)
        squares(t, x + half, y - half, size / 2.2, n - 1)
        squares(t, x - half, y - half, size / 2.2, n - 1)


s = Screen()
t = Turtle()
t.pensize(2)
squares(t, 0, 0, 200, 3)
s.exitonclick()

所以这个程序将绘制一个正方形,每个点有 4 个正方形,每个点有 4 个正方形。这是在辅导后的 1.5 小时内完成的,我的家伙因家庭原因不得不离开,我一个人无法完成。这是任务想要的。

在此处输入图像描述

所以我想要的是一个正方形,一个正方形,一个正方形,一个正方形

标签: pythonrecursion

解决方案


我可以告诉你从你的辅导课中得到了很多...

只是改变

squares(t, 0, 0, 200, 3)

squares(t, 0, 0, 200, 5)

推荐阅读