Решение: Закрашивание клеток справа от стены
Исполнитель Робот перемещается по бесконечному полю, разбитому на клетки. Между соседними клетками могут находиться стены. Робот находится в клетке, расположенной в нижнем углу, который образуется вторым и третьим отрезками стены. Стена состоит из трёх последовательных отрезков: вправо, вниз, влево. Длины отрезков неизвестны. Напишите алгоритм, закрашивающий все клетки, расположенные справа от второго отрезка. Робот должен закрасить только клетки, удовлетворяющие этому условию. Алгоритм должен работать при любом допустимом размере и расположении стены, не приводить к разрушению Робота и завершаться.


Решение по шагам
3 шагаИз исходной клетки Робот движется влево вдоль третьего отрезка. Движение прекращается у его левого конца, где снизу уже нет стены.
Робот спускается вниз и движется вправо под третьим отрезком. Пока сверху находится стена, он продолжает движение. Так Робот доходит до правого конца третьего отрезка, под вторым отрезком.
Робот поднимается по правой стороне второго отрезка. Каждую клетку справа от него он закрашивает. В верхней клетке движение вверх блокируется первым отрезком, после чего цикл завершается.
нц пока не снизу свободно
влево
кц
вниз
нц пока не сверху свободно
вправо
кц
нц пока сверху свободно
вверх
закрасить
кц
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Не проверяют наличие стены перед перемещением.
Закрашивают клетку до перехода на правую сторону второго отрезка.
Не закрашивают верхнюю клетку справа от второго отрезка.
Используют фиксированное число повторений вместо циклов, зависящих от размера стены.