Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста написать команду для робота! Python

Григорий Грушинский Ученик (59), открыт 2 дня назад
Задача № 3

Робот находится где-то в коридоре высотой в 1 клетку. Ему надо оказаться на одну клетку левее крайней левой закрашенной клетки. Если закрашенных клеток нет или левая клетка прямоугольника закрашена, то в левой клетке коридора.
2 ответа
vladyslav.vladyslavyshe Знаток (296) 2 дня назад
Вот простое решение на Python (для среды, где робот может двигаться и проверять, закрашена ли клетка):

python
Copy
Edit
while not wall_from_left():
move_left()
if cell_is_filled():
if wall_from_left():
break
move_left()
break
? Что делает программа:

Робот идёт влево, пока не дойдёт до левой стены или закрашенной клетки.

Если нашёл закрашенную — делает шаг ещё влево и останавливается.

Если закрашена крайняя левая — остаётся в ней (требуется по условию).

Если закрашенных нет — дойдёт до стены и останется там.

Подходит под все случаи на изображении ✅
Григорий ГрушинскийУченик (59) 2 дня назад
А можно без break?
vladyslav.vladyslavyshe Знаток (296) Григорий Грушинский, Да, конечно! Вот та же команда для робота, но без использования break, полностью корректная: python Copy Edit while not wall_from_left(): move_left() if cell_is_filled() and not wall_from_left(): move_left() ? Как работает: Робот двигается влево, пока может. Если он встал на закрашенную клетку и может ещё шагнуть влево, — делает это (становится слева от первой закрашенной). Если закрашенных клеток нет или закрашена крайняя левая — просто доходит до стены и останавливается. Подходит под все изображения ✅
Похожие вопросы