Решение: Пересечение фигур Черепахи
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 5 команд: «Поднять хвост», означающая переход к перемещению без рисования; «Опустить хвост», означающая переход в режим рисования; «Вперёд n» (где n — целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; «Назад n» (где n — целое число), вызывающая передвижение в противоположном голове направлении; «Направо m» (где m — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке; «Налево m» (где m — целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись «Повтори k [Команда1 Команда2 … КомандаS]» означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 2 [Вперёд 7 Направо 90 Вперёд 11 Направо 90]
Поднять хвост
Назад -1 Направо 90 Вперёд 9 Налево 90
Опустить хвост
Повтори 2 [Вперёд 8 Направо 90 Вперёд 3 Направо 90]
Определите, сколько точек с целочисленными координатами будут находиться внутри пересечения фигур, ограниченных заданными алгоритмом линиями, включая точки на линиях.
Решение по шагам
4 шагаПервые четыре команды цикла образуют прямоугольник: Черепаха проходит 7 единиц вверх и 11 единиц вправо, поэтому его границы имеют координаты $0 \leq x \leq 11$ и $0 \leq y \leq 7$.
$$0 \leq x \leq 11,\quad 0 \leq y \leq 7$$После первого прямоугольника Черепаха перемещается без рисования в точку $(9,1)$ и поворачивает голову вверх.
$$(0,0) \to (0,1) \to (9,1)$$Второй цикл строит прямоугольник шириной 3 и высотой 8 с границами $9 \leq x \leq 12$ и $1 \leq y \leq 9$.
$$9 \leq x \leq 12,\quad 1 \leq y \leq 9$$Пересечение прямоугольников имеет границы $9 \leq x \leq 11$ и $1 \leq y \leq 7$. Целые значения принимает 3 значения координаты $x$ и 7 значений координаты $y$.
$$3 \cdot 7 = 21$$Где здесь ошибаются
Не учитывать точки на границах фигур.
Принять команду «Назад -1» за перемещение на одну единицу назад, хотя отрицательное значение даёт перемещение вперёд на одну единицу.
Посчитать площадь пересечения вместо количества целочисленных точек.