Черепахе был дан для исполнения следующий алгоритм. Повтори 2 [Вперёд 14 Налево 270 Назад 12 Направо 90] Поднять хвост Вперёд 9 Направо 90 Назад 7 Налево 90 Опустить хвост Повтори 2 [Вперёд 13 Направо 90 Вперёд 6 Направо 90] Определите, сколько точек с целочисленными координатами находятся внутри пересечения фигур, ограниченного заданными алгоритмом линиями, включая точки на линиях.
Исполнитель Черепаха действует на плоскости с декартовой системой координат.
В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен.
При опущенном хвосте Черепаха оставляет на поле след в виде линии.
В каждый конкретный момент известно положение исполнителя и направление его движения.
У исполнителя существует 6 команд: Поднять хвост, означающая переход к перемещению 6eз рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n — целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n — целое число), вызывающая передвижение в противоположном голове направлении; Направо t (где t — целое число), вызывающая изменение направления движения на t градусов по часовой стрелке, Налево t (где t — целое число), вызывающая изменение направления движения на t градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 ...
КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 2 [Вперёд 14 Налево 270 Назад 12 Направо 90]
Определите, сколько точек с целочисленными координатами находятся внутри пересечения фигур, ограниченного заданными алгоритмом линиями, включая точки на линиях.
Решение
🔹 Шаг 1. Поворот черепахи вверх
from turtle import *
lt(90)
📌 Результат: черепаха смотрит вверх — как в условии задачи.
🔹 Шаг 2. Размер клетки и опускаем хвост
from turtle import *
lt(90)
size = 10
down()
📌 Результат: задан размер клетки size, хвост опущен — можно рисовать.
🔹 Шаг 3. Первый цикл — первая фигура
from turtle import *
lt(90)
size = 10
down()
for _ in range(2):
fd(14 * size)
lt(270)
bk(12 * size)
rt(90)
📌 Результат: первый цикл for рисует первую фигуру.
🔹 Шаг 4. Поднять хвост и сдвиг
from turtle import *
lt(90)
size = 10
down()
for _ in range(2):
fd(14 * size)
lt(270)
bk(12 * size)
rt(90)
up()
fd(9 * size)
rt(90)
📌 Результат: хвост поднят: сдвиг вперёд и поворот без следа.