Шешімі: Алгоритм для Робота
На бесконечном поле имеется вертикальная стена неизвестной длины. От нижнего конца стены влево отходит горизонтальная стена также неизвестной длины. Робот находится в клетке, расположенной справа от верхнего края вертикальной стены. Напишите алгоритм, закрашивающий все клетки, расположенные непосредственно правее вертикальной стены, ниже горизонтальной стены и угловую клетку. Робот должен закрасить только клетки, удовлетворяющие этому условию.


Алгоритм должен работать для произвольного размера и любого допустимого расположения стен, не приводить к разрушению Робота и завершаться.
Шешім по шагам
5 қадамПока слева есть стена, Робот находится непосредственно справа от вертикальной стены. В каждой такой клетке нужно выполнить закрашивание и перейти вниз.
Когда слева становится свободно, Робот оказывается в угловой клетке — клетке ниже горизонтальной стены и справа от вертикальной стены. Её нужно закрасить.
Затем Робот перемещается влево вдоль горизонтальной стены. Каждую клетку под горизонтальной стеной он закрашивает. Цикл заканчивается у левого конца стены, когда слева проход закрыт.
Один из подходящих алгоритмов:
нц пока не слева свободно
закрасить
вниз
кц
закрасить
нц пока слева свободно
влево
закрасить
кц
нц пока не слева свободно
закрасить
вниз
кц
закрасить
нц пока слева свободно
влево
закрасить
кц
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Переход влево до достижения нижнего конца вертикальной стены.
Отсутствие закрашивания угловой клетки.
Движение влево без проверки, что слева свободно, из-за чего Робот разрушается.
Использование фиксированного числа повторений вместо циклов.