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


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