Тип 15. Создание алгоритма для исполнителя Робот. Общий алгоритм решения

Задание проверяет умение писать алгоритмы для исполнителя в среде КуМир. Основная сложность здесь — составить универсальный код, который сработает на любом поле, подходящем под описание.

1. Анализ обстановки

Внимательно прочитайте условие. Робот должен закрасить клетки вдоль стен. Стены могут быть разной длины, а проходы — в разных местах. Поэтому никогда не используйте простые команды вроде «вправо», «вправо», «вправо». Используйте только циклы.

2. Конструкция цикла

Ваш главный инструмент — цикл нц пока (условие) ... кц. Чаще всего используются проверки:

  • справа свободно / справа стена
  • слева свободно / слева стена
  • сверху свободно / сверху стена
  • снизу свободно / снизу стена

3. Пошаговое выполнение (типовой сценарий)

Шаг 1: Дойти до начала стены. Если робот стоит не у стены, используйте цикл, чтобы он «добежал» до неё. Например:
                        нц пока сверху свободно
                            вверх
                        кц
Шаг 2: Закрасить вдоль стены. Пока стена рядом, красим и движемся. Например:
                        нц пока не сверху свободно
                            закрасить
                            вправо
                        кц
Шаг 3: Преодолеть проход (если есть). Если в стене дырка, её нужно просто проскочить. Например:
                        нц пока сверху свободно
                            вправо
                        кц

Золотые правила успеха:

  • Не врезаться. Перед каждым шагом робот должен «проверять» дорогу условием цикла. Если робот ударится о стену — это 0 баллов.
  • Лишние клетки. Не закрашивайте клетки, которые не указаны в задании.
  • Конечная точка. Роботу всё равно, где остановиться, если в задании не сказано иное. Главное — закрасить всё нужное и выжить.

Шпаргалка по командам (для вставки в код):

Действие Команда в КуМире
Движениевверх, вниз, влево, вправо
Рисованиезакрасить
Начало цикланц пока (условие)
Конец циклакц
Отрицаниене (например, пока не снизу свободно)

Перейти к практике по заданию...