递归方块
Recursive Squares
我正在尝试使用 python 的 turtle 函数递归绘制一个正方形,并在正方形内部递归地在其中再绘制四个,然后在这四个内部再绘制四个。
我的代码通过了右上角的方块,但是返回代码的时候出错了。这里是:
import turtle
turtle.speed(0)
def drawSquare(xCenter, yCenter, edgeLength, depthLeft):
xCenter = xCenter
yCenter = yCenter
edgeLength = edgeLength
depthLeft = depthLeft
if depthLeft == 0:
return
else:
turtle.penup()
turtle.goto((xCenter-.5*edgeLength),(yCenter-.5*edgeLength))
turtle.pendown()
for i in range(4):
turtle.forward(edgeLength)
turtle.left(90)
depthLeft = depthLeft - 1
edgeLength = edgeLength/4
drawSquare(xCenter+edgeLength,yCenter+edgeLength,edgeLength, depthLeft)
drawSquare(xCenter-edgeLength,yCenter+edgeLength,edgeLength, depthLeft)
drawSquare(xCenter+edgeLength,yCenter-edgeLength,edgeLength, depthLeft)
drawSquare(xCenter-edgeLength,yCenter-edgeLength,edgeLength, depthLeft)
turtle.exitonclick()
drawSquare(0,0,500,2)
您的代码似乎没有任何问题。我可以使用 https://repl.it/languages/python_turtle
毫无问题地删除 turtle.exitonclick()
和 运行
我什至将初始深度提高到 4
以获得这张可爱的图像
备注
这段代码没有任何作用,你可以删除它
xCenter = xCenter
yCenter = yCenter
edgeLength = edgeLength
depthLeft = depthLeft
我正在尝试使用 python 的 turtle 函数递归绘制一个正方形,并在正方形内部递归地在其中再绘制四个,然后在这四个内部再绘制四个。 我的代码通过了右上角的方块,但是返回代码的时候出错了。这里是:
import turtle
turtle.speed(0)
def drawSquare(xCenter, yCenter, edgeLength, depthLeft):
xCenter = xCenter
yCenter = yCenter
edgeLength = edgeLength
depthLeft = depthLeft
if depthLeft == 0:
return
else:
turtle.penup()
turtle.goto((xCenter-.5*edgeLength),(yCenter-.5*edgeLength))
turtle.pendown()
for i in range(4):
turtle.forward(edgeLength)
turtle.left(90)
depthLeft = depthLeft - 1
edgeLength = edgeLength/4
drawSquare(xCenter+edgeLength,yCenter+edgeLength,edgeLength, depthLeft)
drawSquare(xCenter-edgeLength,yCenter+edgeLength,edgeLength, depthLeft)
drawSquare(xCenter+edgeLength,yCenter-edgeLength,edgeLength, depthLeft)
drawSquare(xCenter-edgeLength,yCenter-edgeLength,edgeLength, depthLeft)
turtle.exitonclick()
drawSquare(0,0,500,2)
您的代码似乎没有任何问题。我可以使用 https://repl.it/languages/python_turtle
毫无问题地删除turtle.exitonclick()
和 运行
我什至将初始深度提高到 4
以获得这张可爱的图像
备注
这段代码没有任何作用,你可以删除它
xCenter = xCenter
yCenter = yCenter
edgeLength = edgeLength
depthLeft = depthLeft