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


Шешімін қадамдап көрсету
6 қадамНачальная клетка находится справа от первой стены у её нижнего края, поэтому её нужно закрасить сразу.
Пока слева находится стена, Робот движется вверх. У верхнего края первой стены слева становится свободно, поэтому цикл завершается.
Верхнюю клетку справа от первой стены закрашиваем.
По верхнему ряду Робот движется вправо, пока справа свободно. После остановки он находится в клетке слева от второй стены, которую также закрашиваем.
Один из подходящих алгоритмов на тілінде исполнителя Робот:
закрасить
нц пока не слева свободно
вверх
кц
закрасить
нц пока справа свободно
вправо
кц
закрасить
закрасить; нц пока не слева свободно — вверх — кц; закрасить; нц пока справа свободно — вправо — кц; закрасить
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Не закрашивают начальную клетку у нижнего края первой стены.
Продолжают движение вверх после того, как слева становится свободно.
Двигаются вправо без проверки условия «справа свободно».
Закрашивают клетку справа от второй стены вместо клетки слева от неё.