Для решения обеих задач требуется написать программу для робота, использующую 3 циклических алгоритма, которая будет закрашивать все клетки, расположенные непосредственно слева от вертикальной стены. Мы использовали подобную программу для решения 12.1 задачи, которая использовала конкретные значения размеров стен. Для общности, предоставим решение, используя общие формулировки.
Алгоритм:
- Робот движется влево до тех пор, пока не достигнет левого края вертикальной стены.
- Робот поворачивается на 180 градусов (меняет направление на противоположное).
- Робот движется вперед, закрашивая каждую клетку слева от вертикальной стены до достижения края поля.
- Робот поворачивается на 180 градусов.
- Робот движется влево до начальной позиции.
Этот алгоритм осуществляется с помощью циклических действий робота и позволяет закрасить все необходимые клетки.
Для задачи, где размеры стен неизвестны, применим тот же алгоритм, изменяя только условия завершения алгоритма на основе обнаружения края поля (границ вертикальной стены).
В обоих случаях важно учитывать, что робот при выполнении алгоритма не должен разрушиться и выполнение программы должно завершиться.
Предоставленный алгоритм можно записать на языке программирования Кумир или в текстовом файле в соответствии с указаниями организаторов.