Еще один пример лучшей жизни: штамповка вместо рисунок :
from turtle import Screen, Turtle
from random import random
TRIANGLE_EDGE = 100
CURSOR_EDGE = 20
TRIANGLE_HEIGHT = TRIANGLE_EDGE * 3 ** 0.5 / 2
def repeat_triangle(turtle, repetitions):
for _ in range(repetitions):
turtle.color(random(), random(), random())
turtle.stamp()
turtle.forward(TRIANGLE_HEIGHT)
screen = Screen()
otto = Turtle('triangle', visible=False)
otto.penup()
otto.setheading(90)
otto.shapesize(TRIANGLE_EDGE / CURSOR_EDGE)
repeat_triangle(otto, 4)
screen.mainloop()
Кроме того, этот код может быть неправильным, в зависимости от того, какую версию черепахи вы используете:
t.color(randint(0,255),randint(0,255),randint(0,255))
Черепаха, которая поставляется с Python, по умолчанию имеет значение float
от 0 до 1 - если вы хотитеиспользуйте int
от 0 до 255, который вы должны запросить через:
turtle.colormode(255)
Простая обработка вашего рисунка кода для укладки треугольников может быть:
from turtle import Screen, Turtle
from random import randint
def repeat_triangle(t, length):
height = length * 3 ** 0.5 / 2
for _ in range(4):
t.color(randint(0, 255), randint(0, 255), randint(0, 255))
t.begin_fill()
for _ in range(3):
t.fd(length)
t.lt(120)
t.end_fill()
t.sety(t.ycor() + height)
screen = Screen()
screen.colormode(255)
otto = Turtle('turtle')
otto.penup()
repeat_triangle(otto, 100)
screen.mainloop()