Вопрос:

Робот находится в левой верхней клетке прямоугольника 2×15. Там есть только вертикальные стенки длиной в 1 клетку. Они примыкают к верхней стороне прямоугольника. Их количество и расположение может быть произвольным. Роботу надо покрасить все клетки верхнего ряда и остановиться в правой верхней клетке прямоугольника.

Ответ ассистента

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

Другие решения

Что ещё задавали пользователи