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


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