Загрузка данных
import turtle
# ЗАДАНИЕ №4: Комментарии к функциям на русском языке (Задание №4 из файла 104236.jpg)
# ЗАДАНИЕ №2 и №3: Функция для создания разных объектов с разным цветом и размером
def moving_object(t, figure_type, size, color):
t.fillcolor(color) # Устанавливаем цвет объекта
t.begin_fill() # Начинаем заливку цветом
if figure_type == "triangle":
# Рисуем треугольник
for _ in range(3):
t.forward(size)
t.left(120)
elif figure_type == "square":
# Рисуем квадрат
for _ in range(4):
t.forward(size)
t.left(90)
else:
# Рисуем круг (как в оригинале)
t.circle(size / 2)
t.end_fill() # Заканчиваем заливку
# ЗАДАНИЕ №1: Основная программа в модуле Turtle
if __name__ == "__main__":
screen = turtle.Screen() # Создаем окно
screen.setup(600, 593) # Размеры окна из файла
screen.bgcolor('green') # Зеленый фон из файла
screen.tracer(0) # Отключаем анимацию для плавности
# ----- СОЗДАНИЕ ОСНОВНОГО КВАДРАТА -----
square = turtle.Turtle() # Черепашка для квадрата
square.speed(0) # Максимальная скорость отрисовки
square.width(2) # Ширина линии
square.hideturtle() # Прячем курсор
square.penup() # Поднимаем перо
square.goto(-250, 0) # Начальная позиция
# ----- СОЗДАНИЕ ТРЕУГОЛЬНИКОВ (каждый со своей скоростью) -----
# Треугольник 1 - самый медленный
triangle1 = turtle.Turtle()
triangle1.speed(0)
triangle1.width(2)
triangle1.hideturtle()
triangle1.penup()
triangle1.goto(-250, 60) # Выше квадрата на 60 пикселей
# Треугольник 2 - средняя скорость
triangle2 = turtle.Turtle()
triangle2.speed(0)
triangle2.width(2)
triangle2.hideturtle()
triangle2.penup()
triangle2.goto(-250, 100) # Выше на 100 пикселей
# Треугольник 3 - самый быстрый
triangle3 = turtle.Turtle()
triangle3.speed(0)
triangle3.width(2)
triangle3.hideturtle()
triangle3.penup()
triangle3.goto(-250, 140) # Выше на 140 пикселей
# ----- НАСТРОЙКА ПАРАМЕТРОВ -----
# Параметры квадрата
square_figure = "square" # Форма: квадрат
square_color = "orange" # Цвет квадрата
square_size = 40 # Размер квадрата
square_speed = 2 # Скорость квадрата (средняя)
# Параметры треугольников (каждый со своей скоростью)
triangle_color = "red" # Цвет треугольников
triangle_size = 25 # Размер треугольников
# Разные скорости для каждого треугольника
speed_triangle1 = 1 # Медленный (1)
speed_triangle2 = 3 # Средний (3)
speed_triangle3 = 5 # Быстрый (5)
# ----- ОСНОВНОЙ ИГРОВОЙ ЦИКЛ -----
while True:
# Очищаем следы всех объектов
square.clear()
triangle1.clear()
triangle2.clear()
triangle3.clear()
# Рисуем квадрат
moving_object(square, square_figure, square_size, square_color)
# Рисуем треугольники
moving_object(triangle1, "triangle", triangle_size, triangle_color)
moving_object(triangle2, "triangle", triangle_size, triangle_color)
moving_object(triangle3, "triangle", triangle_size, triangle_color)
screen.update() # Обновляем экран
# Двигаем каждый объект с ЕГО скоростью
square.forward(square_speed)
triangle1.forward(speed_triangle1)
triangle2.forward(speed_triangle2)
triangle3.forward(speed_triangle3)
# ----- ПРОВЕРКА ВЫХОДА ЗА ЭКРАН (каждый объект возвращается отдельно) -----
# Квадрат
if square.xcor() > 300:
square.goto(-300, 0)
# Медленный треугольник
if triangle1.xcor() > 300:
triangle1.goto(-300, 60)
# Средний треугольник
if triangle2.xcor() > 300:
triangle2.goto(-300, 100)
# Быстрый треугольник
if triangle3.xcor() > 300:
triangle3.goto(-300, 140)