Алгоритм для Робота, закрашивающего клетки под горизонтальной стеной и слева от вертикальной стены, с учетом проходов:
- Вниз до стены: Двигаться вниз, пока не упремся в стену.
- Вправо: Сделать шаг вправо (встать в первую клетку слева от вертикальной стены).
- Цикл «Вверх вдоль стены»:
- Вверх: Двигаться вверх.
- Проверка на проход: Если впереди свободно (нет стены), то двигаться вверх, пока не появится стена, продолжая движение вверх.
- Закрасить: Закрасить текущую клетку.
- Конец стены?: Если достигнут конец стены, завершить цикл.
- Влево под стеной: Перейти к закрашиванию клеток под горизонтальной стеной.
- Влево: Двигаться влево.
- Цикл «Влево вдоль стены»:
- Влево: Двигаться влево.
- Проверка на проход: Если впереди свободно (нет стены), то двигаться влево, пока не появится стена, продолжая движение влево.
- Закрасить: Закрасить текущую клетку.
- Конец стены?: Если достигнут конец стены, завершить цикл.
- Завершение: Алгоритм завершен.
Пояснения:
- Алгоритм предполагает, что Робот начинает работу непосредственно слева от нижнего конца вертикальной стены.
- Проходы определяются как свободное пространство перед Роботом при движении вдоль стены.
- Робот продолжает движение вдоль стены и закрашивает клетки до тех пор, пока не достигнет конца стены.