基于递归深度的海龟铅笔颜色变化

2024-06-01 02:49:46 发布

您现在位置:Python中文网/ 问答频道 /正文

有人知道如何根据代码递归的深度改变海龟的铅笔颜色吗?我想不通。在

def drawzig2(depth,size):
 if depth == 0:
    pass
 else:
    left(90)
    fd(size/2)
    right(90)
    fd(size)
    left(45)        
    drawzig2(depth-1,size/2)       
    right(45)
    fd(-size)
    left(90)
    fd(-size)
    right(90)
    fd(-size)
    left(45)        
    drawzig2(depth-1,size/2)        
    right(45)
    fd(size)
    left(90)
    fd(size/2)
    right(90)

drawzig2(3,100)

Tags: 代码rightsizeif颜色defpassleft
1条回答
网友
1楼 · 发布于 2024-06-01 02:49:46

以下是代码的修改版本,它根据深度更改颜色:

import turtle
import logging

colors = ['green', 'yellow', 'blue']

def drawzig2(depth, size):
    if depth == 0:
        pass
    else:
        turtle.pen(pencolor=colors[depth % len(colors)])
        logging.error(
            "Depth: " + str(depth) + " " +
            "Color: " + colors[depth % len(colors)])
        turtle.left(90)
        turtle.fd(size / 2)
        turtle.right(90)
        turtle.fd(size)
        turtle.left(45)
        drawzig2((depth - 1),(size / 2))
        turtle.right(45)
        turtle.fd(-size)
        turtle.left(90)
        turtle.fd(-size)
        turtle.right(90)
        turtle.fd(-size)
        turtle.left(45)
        drawzig2((depth - 1), (size / 2))
        turtle.right(45)
        turtle.fd(size)
        turtle.left(90)
        turtle.fd(size / 2)
        turtle.right(90)

drawzig2(3,100)

它开始生产的屏幕截图:

enter image description here

编辑:根据martineu在评论中的反馈意见,我修改了解决方案,使OP更容易理解,并包含日志,运行时应输出如下:

^{pr2}$

相关问题 更多 >