5. На бесконечном поле имеется стена, состоящая из двух горизонтальных и одного вертикального участков, примерная форма которой представлена на рисунке. Длины участков неизвестны. Робот находится в клетке под левой горизонтальной частью стены.
На рисунке указан один из возможных вариантов расположения стены и Робота.

Задача Робота — закрасить клетки, примыкающие сверху к горизонтальным участкам стены. Например, для приведённого выше рисунка Робот должен закрасить следующие клетки:

Конечное расположение Робота может быть произвольным. Задача должна быть решена для стены, горизонтальные и вертикальный участки которой могут иметь любые размеры.
Есть план действий Робота:
1) двигаться вверх до горизонтального участка стены;
2) двигаться влево под горизонтальным участком стены и сместиться на 1 клетку левее стены;
3) занять положение над горизонтальным участком стены;
4) закрасить клетки слева направо над горизонтальным участком стены;
5) спуститься вниз вдоль вертикального участка стены;
6) закрасить клетки слева направо над горизонтальным участком стены.
Реализуйте этот план, составив алгоритм для Робота в среде КуМир.
Ответ
Алгоритм для реализации плана действий робота в среде КуМир:
1. Поворот вверх:
- Робот поворачивает на 90 градусов вверх.
2. Движение вверх до горизонтального участка стены:
- Робот двигается вперед, проверяя каждую клетку на наличие стены.
- Если робот обнаруживает стену, он останавливается.
- Если робот не обнаруживает стену, он продолжает двигаться вверх.
3. Поворот влево под горизонтальным участком стены:
- Робот поворачивает на 90 градусов влево.
4. Смещение на 1 клетку левее стены:
- Робот двигается вперед на одну клетку.
5. Поворот вверх над горизонтальным участком стены:
- Робот поворачивает на 90 градусов вверх.
6. Закрашивание клеток слева направо над горизонтальным участком стены:
- Робот двигается вперед, закрашивая каждую клетку над горизонтальным участком стены.
- Робот прекращает закрашивание, когда он достигает стены.
7. Спуск вниз вдоль вертикального участка стены:
- Робот поворачивает на 90 градусов вниз.
- Робот двигается вперед по вертикальному участку стены, проверяя каждую клетку на наличие стены.
- Робот прекращает движение вниз, когда он достигает конца вертикального участка стены.
8. Закрашивание клеток слева направо над горизонтальным участком стены:
- Робот поворачивает на 90 градусов вверх.
- Робот двигается вперед, закрашивая каждую клетку над горизонтальным участком стены.
- Робот прекращает закрашивание, когда он достигает конца горизонтального участка стены.
Это алгоритм для реализации плана действий робота в среде КуМир. Вы можете использовать это руководство для написания программы на языке КуМир, которая будет выполнять описанные шаги.