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


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