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


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