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


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