← Все вопросы

Задание 15.2 ОГЭ: как написать программу для Робота в КуМире?

Задан 16 месяцев назад1.4к просмотров2 ответа
8

Выбрал задание 15.2 с исполнителем Робот в КуМире, но не понимаю, как писать циклы для прохода вдоль стен и закрашивания. Как составить алгоритм для Робота, который обходит лабиринт? Есть базовые шаблоны?

2 ответа

10
✓ Принятый ответ — помог автору

Задание 15.2 — это исполнитель Робот в КуМире. Он ходит по клетчатому полю со стенами и умеет закрашивать клетки. Программу нужно написать так, чтобы она работала при любой допустимой обстановке (длине стен), а не только для картинки в условии.

Команды Робота:

  • движение: вверх, вниз, влево, вправо
  • действие: закрасить
  • условия: справа свободно, слева стена, снизу свободно и т.п.

Главный приём — циклы «пока», потому что длина стен заранее неизвестна:

нц пока справа свободно
  вправо
  закрасить
кц

Этот цикл идёт вправо и красит клетки, пока справа нет стены — сколько бы клеток ни было.

Шаблон «двигаться до стены»:

нц пока сверху свободно
  вверх
кц

Алгоритм составления:

  1. Разбейте маршрут на участки (вдоль стены вниз, вдоль стены вправо и т.д.).
  2. Каждый участок — отдельный цикл нц пока ... свободно ... кц.
  3. Добавляйте закрасить там, где нужно по условию.

Частая ошибка: пишут фиксированное число шагов (вправо пять раз) под конкретную картинку. Тогда на проверочной обстановке с другой длиной стены программа провалится. Используйте только циклы «пока», опираясь на наличие/отсутствие стен.

4

Если выбираете между 15.1 (программа на Python) и 15.2 (Робот) — ориентируйтесь на свои сильные стороны.

15.1 проще тем, кто уверенно пишет циклы и условия в Python. 15.2 нагляднее для тех, кто хорошо «чувствует» движение по полю и стены. По баллам они равноценны.

Для Робота заранее отработайте три заготовки: «идти вдоль стены до конца», «закрашивать ряд пока свободно», «спуститься/подняться до упора». Из них собираются почти все траектории обхода в ОГЭ.

Ваш ответ

, чтобы ответить на вопрос.