Вопрос:

Робот находится где-то в прямоугольнике. С одной стороны от него есть стенка шириной в 1 клетку. Робот должен обойти стенку и остановиться в клетке с другой стороны от неё.

Фотография

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

**Ответ:** Для того чтобы робот обошёл стенку шириной в 1 клетку, находящуюся с любой из сторон, и оказался с другой стороны от неё, нужно использовать цикл `while` («пока»). Поскольку в условии сказано, что стенка есть «с одной стороны», нам нужно сначала определить, где именно она находится, а затем совершить обход. Предположим, стенка находится **справа** от робота (как один из вариантов). Тогда алгоритм будет таким: 1. Проверяем, есть ли стена справа (`wall_from_right()`). 2. Если стена справа, идём вверх (или вниз) до края стены. 3. Сдвигаемся вправо. 4. Проходим вдоль стены. 5. Сдвигаемся обратно. Универсальный код для случая, если стена **справа**: ```python # Идём вверх, пока справа стена while wall_from_right(): move_up() # Теперь стены справа нет, делаем шаг за неё move_right() move_right() # Проходим ширину стены (1 клетка) и встаём рядом # Идём вниз, чтобы оказаться напротив исходной позиции while wall_from_left(): move_down() ``` Если нужно просто обойти препятствие в 1 клетку, которое мешает пройти вперёд (например, робот хочет идти вправо, а там стена): ```python if wall_from_right(): move_up() move_right() move_right() move_down() ```

Похожие задачи

Посмотри похожие решения — вдруг одно из них подойдёт тебе

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

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