Условие задачи
Исполнитель Робот перемещается по лабиринту на плоскости, разбитой на клетки. Между клетками могут быть стены, непроходимые для робота. Робот имеет 9 команд, 5 из которых — перемещения: вверх, вниз, влево, вправо. При попытке пройти сквозь стену робот разрушается.
На бесконечном поле расположены горизонтальная и вертикальная стены, соединённые под прямым углом. Длины стен неизвестны. В каждой стене — один проход неизвестной ширины и местоположения. Робот стартует у левого конца горизонтальной стены.
Необходимо написать программу, закрашивающую клетки под горизонтальной и вертикальной стенами (кроме стартовой). Проходы должны остаться незакрашенными. Робот не должен разрушиться.
Решение в среде Кумир
Решение выполняется в среде Кумир, используя только робота (без чертёжника).
Подготовка рабочей области
- В Кумире указать использование робота: использовать робот.
- Настроить рабочую область («Робот» → «Редактировать обстановку»). Создавать стены левой кнопкой мыши (зелёная подсветка при наведении на грань клетки), удалять — правой. Размер области можно изменять. Рекомендуется создать обстановку, аналогичную условию задачи, и сохранить её («Робот» → «Сохранить обстановку»).
Алгоритм решения
Алгоритм основан на циклической проверке наличия стен и закрашивании клеток. Используется цикл нц пока.
- Робот перемещается вправо на одну клетку.
- Цикл 1: нц пока не сверху свободно:
- Закрасить текущую клетку.
- Переместиться вправо.
- Цикл 2: нц пока сверху свободно:
- Переместиться вправо.
- Циклы 1 и 2 повторяются для вертикальной стены.
- Цикл 3: нц пока не справа свободно:
- Закрасить текущую клетку.
- Переместиться вниз.
- Цикл 4: нц пока справа свободно:
- Переместиться вниз.
Циклы 3 и 4 повторяются для оставшейся части вертикальной стены. Для экономии времени на экзамене можно скопировать фрагменты кода.
Проверка универсальности алгоритма
Необходимо проверить алгоритм на разных длинах стен. Программа должна работать корректно.
Представлено пошаговое решение задачи 15.1 ОГЭ по информатике 2020 года в Кумире. Важно проверить универсальность алгоритма и эффективно использовать время на экзамене.