Загрузка данных


import turtle

# Функция рисования машинки
def draw_car(t, size, color):
    t.fillcolor(color)
    t.begin_fill()
    
    # Кузов машинки (прямоугольник)
    for _ in range(2):
        t.forward(size * 1.5)
        t.left(90)
        t.forward(size)
        t.left(90)
    t.end_fill()
    
    # Кабина (верхняя часть)
    t.fillcolor("lightblue")
    t.begin_fill()
    t.left(90)
    t.forward(size * 0.6)
    t.right(90)
    t.forward(size * 0.8)
    t.right(90)
    t.forward(size * 0.6)
    t.right(90)
    t.forward(size * 0.8)
    t.end_fill()
    
    # Колеса
    t.penup()
    t.goto(t.xcor() + size * 0.2, t.ycor() - size * 0.4)
    t.pendown()
    t.fillcolor("black")
    t.begin_fill()
    t.circle(size * 0.15)
    t.end_fill()
    
    t.penup()
    t.goto(t.xcor() + size * 0.8, t.ycor())
    t.pendown()
    t.begin_fill()
    t.circle(size * 0.15)
    t.end_fill()

# Функция рисования поезда
def draw_train(t, size, color):
    t.fillcolor(color)
    t.begin_fill()
    
    # Основной вагон
    for _ in range(2):
        t.forward(size * 2)
        t.left(90)
        t.forward(size)
        t.left(90)
    t.end_fill()
    
    # Крыша
    t.fillcolor("darkred")
    t.begin_fill()
    t.left(90)
    t.forward(size * 0.3)
    t.right(90)
    t.forward(size * 2)
    t.right(90)
    t.forward(size * 0.3)
    t.end_fill()
    
    # Окна
    t.penup()
    t.goto(t.xcor() - size * 1.5, t.ycor() + size * 0.3)
    t.pendown()
    t.fillcolor("yellow")
    for _ in range(3):  # 3 окна
        t.begin_fill()
        for _ in range(2):
            t.forward(size * 0.4)
            t.left(90)
            t.forward(size * 0.3)
            t.left(90)
        t.end_fill()
        t.penup()
        t.forward(size * 0.5)
        t.pendown()
    
    # Колеса
    t.penup()
    t.goto(t.xcor() - size * 1.3, t.ycor() - size * 0.5)
    t.pendown()
    t.fillcolor("black")
    for _ in range(2):
        t.begin_fill()
        t.circle(size * 0.12)
        t.end_fill()
        t.penup()
        t.forward(size * 1.2)
        t.pendown()

# Функция для создания разных объектов
def moving_object(t, object_type, size, color):
    if object_type == "car":
        draw_car(t, size, color)
    elif object_type == "train":
        draw_train(t, size, color)
    else:
        # Обычная фигура для совместимости
        t.fillcolor(color)
        t.begin_fill()
        for _ in range(4):
            t.forward(size)
            t.left(90)
        t.end_fill()

# Основная программа
if __name__ == "__main__":
    screen = turtle.Screen()
    screen.setup(800, 600)
    screen.bgcolor("lightblue")  # Небо
    screen.tracer(0)
    
    # Рисуем землю
    ground = turtle.Turtle()
    ground.speed(0)
    ground.penup()
    ground.goto(-400, -50)
    ground.pendown()
    ground.fillcolor("gray")
    ground.begin_fill()
    for _ in range(2):
        ground.forward(800)
        ground.left(90)
        ground.forward(20)
        ground.left(90)
    ground.end_fill()
    ground.hideturtle()
    
    # Создаем движущийся объект
    move = turtle.Turtle()
    move.speed(0)
    move.width(2)
    move.hideturtle()
    move.penup()
    move.goto(-350, -30)  # Над землей
    
    # Параметры для переключения
    current_object = "car"  # "car" или "train"
    current_color = "red"
    current_size = 30
    speed_step = 3
    
    # Бесконечный цикл движения
    while True:
        move.clear()
        
        moving_object(move, current_object, current_size, current_color)
        
        screen.update()
        move.forward(speed_step)
        
        # Если объект уехал, возвращаем его
        if move.xcor() > 350:
            move.goto(-350, -30)