Ответ:
На рисунке ступени поднимаются и затем спускаются; для каждой ступени нужная клетка находится непосредственно над её горизонтальной площадкой. Используем проверку стены сверху: на площадке лестницы клетка над ней свободна, а при подъёме к следующей ступени путь вверх перекрыт стеной. Чтобы не закрашивать лишние клетки, закрашиваем текущую клетку только после перехода на следующую площадку.
Ниже — алгоритм в условной записи языка Робота. Предполагается, что стандартные команды проверки стен («сверху свободно», «справа свободно») и команда «закрасить» доступны.
закрасить
пока справа свободно
если сверху свободно
вправо
закрасить
иначе
вверх
вверх
вправо
закрасить
все
всеАлгоритм идёт по площадкам слева направо. Когда справа на текущем уровне есть проход, но сверху стоит стена, он поднимается на высоту ступени и переходит на следующую площадку. Если сверху свободно, он остаётся на текущей высоте и переходит вправо. Клетки над ступенями закрашиваются по мере перехода. Из-за неоднозначности ориентации команд и точного расположения стартовой клетки относительно первой площадки алгоритм может потребовать адаптации к синтаксису конкретной версии исполнителя Робот.
