Решение: Закрашивание коридора Роботом
Робот находится в правой клетке узкого горизонтального коридора. Ширина коридора — одна клетка, длина коридора может быть произвольной. Напишите алгоритм, закрашивающий все клетки внутри коридора и возвращающий Робота в исходную позицию. Алгоритм должен работать для произвольного конечного размера коридора, не разрушать Робота и завершаться.
Решение по шагам
5 шаговРобот начинает в правой клетке. Пока слева свободно, он закрашивает текущую клетку и перемещается на одну клетку влево.
После завершения первого цикла Робот находится в крайней левой клетке. Эту клетку нужно закрасить отдельно.
Затем Робот перемещается вправо, пока справа свободно. Так он возвращается в исходную правую клетку.
Алгоритм Кумир:
нц пока слева свободно
закрасить
влево
кц
закрасить
нц пока справа свободно
вправо
кц
нц пока слева свободно
закрасить
влево
кц
закрасить
нц пока справа свободно
вправо
кц
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Не закрашивают крайнюю левую клетку после завершения первого цикла.
Не предусматривают возвращение Робота в исходную позицию.
Используют команду движения без проверки свободного прохода.