Задача с сайта https://kpolyakov.spb.ru/
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси абсцисс, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд (где
– целое число), вызывающая передвижение Черепахи на
единиц в том направлении, куда указывает её голова, и Направо
(где
– целое число), вызывающая изменение направления движения на
градусов по часовой стрелке. Запись
Повтори [Команда1 Команда2 … Команда
]
означает, что последовательность из команд повторится
раз. Черепахе был дан для исполнения следующий алгоритм:
Повтори 12 [Вперёд 10 Направо 216]
Определите, из какого количества отрезков будет состоять фигура, заданная данным алгоритмом.
Считайте, что точка пересечения двух отрезков разбивает каждый из них на два отрезка.
Реализуем программу:
from turtle import *
m = 30 # Задаем масштабный коэффициент m
tracer(0) # Отключаем анимацию рисования для ускорения отрисовки
for i in range(12): # Выполняем цикл 12 раз для рисования фигуры
forward(10 * m) # Перемещаем черепаху вперед на 10 * m
right(216) # Поворачиваем черепаху вправо на 216 градусов
update() # Обновляем экран после завершения рисования
done() # Завершаем работу с графикой
Получаем фигуру:
Как видно из рисунка в звезде 5 линий, каждая из которых разбита двумя точками. Получаем, что всего 15 линий.