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


from turtle import Turtle, Screen

def push_state(t, stack):
    """Сохраняет текущее состояние черепахи в стек."""
    state = (t.pos(), t.heading(), t.isdown(), t.pencolor(), t.pensize())
    stack.append(state)

def pop_state(t, stack):
    """Восстанавливает состояние черепахи из стека."""
    pos, heading, is_down, color, size = stack.pop()
    t.penup()
    t.goto(pos)
    t.setheading(heading)
    t.color(color)
    t.pensize(size)
    if is_down:
        t.pendown()
    else:
        t.penup()

def draw_centered_square(t, size):
    """Рисует квадрат с центром в текущей позиции черепахи."""
    t.penup()
    # Переходим в левый нижний угол
    t.forward(size / 2)
    t.left(90)
    t.forward(size / 2)
    t.right(90)
    t.pendown()

    # Рисуем квадрат
    for _ in range(4):
        t.forward(size)
        t.right(90)

# === Основная программа ===
screen = Screen()
screen.setup(600, 400)
screen.bgcolor('white')
screen.title('Задание 4 – Вариант 3')

t = Turtle()
t.speed(0)
t.pensize(2)
t.color('blue')
t.hideturtle()

stack = []

# Рисуем 10 квадратов
side = 20          # сторона первого квадрата
for i in range(10):
    push_state(t, stack)          # сохраняем состояние (центр + угол)
    draw_centered_square(t, side)
    pop_state(t, stack)           # возвращаемся в центр и восстанавливаем угол

    t.left(10)                    # дополнительный поворот на 10°
    side += 15                    # увеличиваем сторону на 15

screen.exitonclick()