Есть несколько проблем с вашим кодом, основная из которых - вы используете неправильную цветовую модель.По умолчанию цвета черепахи задаются как значения с плавающей запятой в диапазоне от 0,0 до 1,0.Однако, если вы хотите использовать значения, подобные тем, которые есть в вашем коде, мы можем переключить это с помощью colormode(255)
, который допускает значения от 0 до 255.
Далее, begin_fill()
должен иметь соответствующий end_fill()
, которыйвам не хватает.Цвета указаны в порядке (red, green, blue)
, а не (red, blue, green)
.Кроме того, если вы установите для pencolor()
и fillcolor()
один и тот же цвет, вы можете просто использовать один вызов color()
.
Наконец, эти два оператора ничего не делают:
t.color()
(red + 1, blue + 1, green + 1)
относительно вашего кода.Вы должны переосмыслить их.Ниже моя переделка вашего кода, которая решает вышеуказанные проблемы и некоторые другие детали:
from turtle import Screen, Turtle
def square(size):
count = 0
if turtle.filling():
turtle.pensize(5)
else:
turtle.pensize(3)
while count < 4:
turtle.forward(size)
turtle.right(90)
count += 1
def drawing(number):
red = 30
green = 10
blue = 20
times = 0
while times < number:
turtle.color(red % 255, green % 255, blue % 255)
turtle.begin_fill()
square(size)
turtle.end_fill()
turtle.right(360 / number)
red, green, blue = red + 20, green + 30, blue + 10
times += 1
size = int(input("How long do you want the side lengths to be? "))
number = int(input("How many squares do you want in the image? "))
screen = Screen()
screen.colormode(255)
turtle = Turtle()
turtle.speed('fastest') # because I have no patience
drawing(number)
screen.exitonclick()
![enter image description here](https://i.stack.imgur.com/d9mR4.png)