Исполнитель Робот умеет перемещаться по лабиринту, начерченному на плоскости, разбитой на клетки. Между соседними (по сторонам) клетками может стоять стена, через которую Робот пройти не может.
У Робота есть девять команд.
Четыре команды – это команды-приказы:
вверх вниз влево вправо
При выполнении любой из этих команд Робот перемещается на одну клетку соответственно:
вверх ↑, вниз ↓, влево ←, вправо →. Если Робот получит команду передвижения сквозь стену, то он разрушится.
Также у Робота есть команда закрасить, при которой закрашивается клетка, в которой Робот находится в настоящий момент.
Ещё четыре команды – это команды проверки условий. Эти команды проверяют, свободен ли путь для Робота в каждом из четырёх возможных направлений:
сверху свободно
снизу свободно
слева свободно
справа свободно.
или
сверху стена
снизу стена
слева стена
справа стена.
Выполните задание.
На бесконечном поле имеется горизонтальная стена.
Длина стены неизвестна. В стене есть ровно один проход, точное место прохода и его длина
неизвестны. Робот находится в одной из клеток, расположенной непосредственно сверху от стены (левее прохода).
Нужно закрасить все клетки снизу от стены.
Напишите алгоритм который закрашивает нужные клетки (мигающие черные) и приводит робота на базу (зеленая клетка).
Алгоритм должен работать
на всех обстановках.