Задание 15.2 ОГЭ: как написать программу для Робота в КуМире?
Выбрал задание 15.2 с исполнителем Робот в КуМире, но не понимаю, как писать циклы для прохода вдоль стен и закрашивания. Как составить алгоритм для Робота, который обходит лабиринт? Есть базовые шаблоны?
2 ответа
Задание 15.2 — это исполнитель Робот в КуМире. Он ходит по клетчатому полю со стенами и умеет закрашивать клетки. Программу нужно написать так, чтобы она работала при любой допустимой обстановке (длине стен), а не только для картинки в условии.
Команды Робота:
- движение:
вверх,вниз,влево,вправо - действие:
закрасить - условия:
справа свободно,слева стена,снизу свободнои т.п.
Главный приём — циклы «пока», потому что длина стен заранее неизвестна:
нц пока справа свободно
вправо
закрасить
кц
Этот цикл идёт вправо и красит клетки, пока справа нет стены — сколько бы клеток ни было.
Шаблон «двигаться до стены»:
нц пока сверху свободно
вверх
кц
Алгоритм составления:
- Разбейте маршрут на участки (вдоль стены вниз, вдоль стены вправо и т.д.).
- Каждый участок — отдельный цикл
нц пока ... свободно ... кц. - Добавляйте
закраситьтам, где нужно по условию.
Частая ошибка: пишут фиксированное число шагов (вправо пять раз) под конкретную картинку. Тогда на проверочной обстановке с другой длиной стены программа провалится. Используйте только циклы «пока», опираясь на наличие/отсутствие стен.
Если выбираете между 15.1 (программа на Python) и 15.2 (Робот) — ориентируйтесь на свои сильные стороны.
15.1 проще тем, кто уверенно пишет циклы и условия в Python. 15.2 нагляднее для тех, кто хорошо «чувствует» движение по полю и стены. По баллам они равноценны.
Для Робота заранее отработайте три заготовки: «идти вдоль стены до конца», «закрашивать ряд пока свободно», «спуститься/подняться до упора». Из них собираются почти все траектории обхода в ОГЭ.