Ответ:
Размер контура не указан, поэтому алгоритм использует повторение до обнаружения прохода и проверки наличия стены. Предполагается, что Робот умеет проверять соседнюю клетку на наличие стены и перемещаться по свободным клеткам.
- Двигаться вдоль внешней стороны контура, обходя его по периметру.
- У каждой клетки стены проверять соседнюю клетку со стороны контура. Если там нет стены и эта клетка ведёт внутрь, это проход. Перейти через него внутрь контура.
- Внутри найти четыре угловые клетки: двигаться вдоль стен до угла и закрасить угловую клетку; повторить для всех четырёх углов.
Схема алгоритма в псевдокоде:
ПОКА проход не найден ИДИ вдоль внешней стороны контура
ЕСЛИ напротив проход шириной 1 клетка ТО
перейти внутрь контура
проход найден
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
ДЛЯ каждого из 4 угловых участков
двигаться вдоль стен до угловой клетки
закрасить клетку
КОНЕЦ ЦИКЛАТочный алгоритм на командах конкретной среды Робота нельзя записать без её набора команд и условий проверки стен. Кроме того, для движения внутри контура нужны его размеры или возможность определять углы по стенам.
