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