Робот-курьер в Scratch: создаём повторяющийся маршрут

Робот-доставщик выполняет маршрут один раз: забирает посылку у склада, едет к пункту доставки и останавливается. У курьера другая работа: после доставки он возвращается к складу, получает следующую посылку и снова отправляется в путь.
В этом проекте робот-курьер выполнит три полных поездки. До пункта доставки он поедет вправо и вниз, а вернётся к складу по двум другим сторонам поля — сначала влево, затем вверх. Получится замкнутый прямоугольный маршрут.
Сначала соберём одну полную поездку без внешнего цикла, проверим её на поле и только после этого найдём часть программы, которую нужно повторять.
Где выполнять проект
Проект создаётся в Scratch-совместимом редакторе RobboScratch. Для работы в браузере откройте онлайн-редактор RobboScratch. Регистрация для выполнения задания не требуется, а проект можно сохранить на компьютер в формате .sb3.
Если нужно заниматься без постоянного подключения к интернету, используйте автономную версию. Для Windows доступна официальная инструкция РОББО по установке RobboScratch; на этой странице также есть переходы к инструкциям для других операционных систем.
Что получится в конце
- слева расположен склад;
- справа внизу расположен пункт доставки;
- робот стартует у склада;
- перед каждой поездкой рядом со складом появляется посылка;
- робот доезжает до пункта доставки по верхней и правой сторонам маршрута;
- посылка исчезает после доставки;
- робот возвращается к складу по нижней и левой сторонам маршрута;
- полная поездка выполняется три раза;
- после третьего возврата робот останавливается в исходной точке.
Базовый проект можно проверить без счётчика: посчитайте, сколько раз робот приехал к пункту доставки и сколько раз посылка исчезла. Оба события должны произойти трижды.
Что понадобится
- компьютер или ноутбук;
- RobboScratch в браузере или автономная версия;
- готовая первая миссия с роботом-доставщиком либо новый проект с полем, роботом и посылкой.
Если маршрут от склада к пункту доставки ещё не собран, сначала выполните миссию «Первый робот в Scratch: создаём робота-доставщика». В ней уже настроены поле, движение по двум участкам и исчезновение посылки.
Используйте готовую первую миссию или создайте основу
Если первая миссия уже выполнена
Откройте исходный файл .sb3 в RobboScratch и до начала изменений сохраните отдельную копию. Подходящее имя нового файла: robot-kurer-tri-dostavki.sb3.
Исходную миссию оставьте без изменений. Тогда можно будет сравнить разовую доставку и повторяющуюся работу курьера.
Если вы начинаете с нового проекта
- создайте светлое поле;
- нарисуйте склад в левой верхней части;
- нарисуйте пункт доставки в правой нижней части;
- добавьте спрайт робота и переименуйте его в «Робот»;
- выберите спрайт Gift, переименуйте его в «Посылка».
В приложенных проектах робот стартует в точке x: -140, y: 75. Первый участок состоит из 30 повторений по 10 шагов, второй — из 20 изменений координаты y на -10. Эти значения подходят для подготовленного поля. На другом поле число повторений может отличаться.
Маршрут курьера обычными словами

- Поставить робота у склада.
- Подготовить посылку.
- Показать посылку перед выездом.
- Доехать до пункта доставки: сначала вправо, затем вниз.
- Передать сообщение о доставке и спрятать посылку.
- Вернуться к складу по другому пути: сначала влево, затем вверх.
- Начать следующую доставку.
- Выполнить полную поездку три раза.
Какие команды нужны только при запуске проекта, а какие должны выполняться перед каждой новой доставкой?
Шаг 1. Проверьте маршрут от склада к пункту доставки
Начните с одной доставки. Робот должен стартовать у склада, пройти верхний участок вправо, затем опуститься к пункту доставки и остановиться.
Стартовая часть кода робота
- когда флажок нажат
- установить размер 70 %
- перейти в x: -140 y: 75
- повернуться в направлении 90
Подготовьте фон
Выберите сцену и откройте вкладку «Фоны». Сделайте фон светлым. В левой верхней части нарисуйте прямоугольник склада, а в правой нижней — прямоугольник пункта доставки. Добавьте подписи «Склад» и «Пункт доставки».
Подготовьте сообщения
После стартовых команд робота добавьте:
- передать сообщение [подготовка] и ждать до конца
- ждать 2 секунды
- передать сообщение [новая доставка] и ждать до конца
Подготовьте посылку
Выберите в библиотеке спрайт Gift, переименуйте его в «Посылка» и установите в начальное положение:
- когда флажок нажат
- установить размер 50 %
- перейти в x: -110 y: 165
- повернуться в направлении 90
У спрайта «Посылка» создайте ещё три коротких скрипта.
Подготовка перед запуском:
- когда я получу сообщение [подготовка]
- спрятаться
- перейти в x: -110 y: 165
Появление перед новой поездкой:
- когда я получу сообщение [новая доставка]
- перейти в x: -110 y: 165
- показаться
Завершение доставки:
- когда я получу сообщение [доставка]
- спрятаться
Координаты посылки соответствуют подготовленному полю. Если вы используете другой фон, сначала измените только координату x, а затем при необходимости координату y.
Добавьте путь к пункту доставки
После сообщения [новая доставка] добавьте два участка движения:
- повторить 30 раз
- идти 10 шагов
- следующий костюм
- ждать 0,2 секунды п
- овторить 20 раз
- изменить y на -10
- следующий костюм
- ждать 0,2 секунды
- передать сообщение [доставка] и ждать до конца
Блок «следующий костюм» создаёт простую анимацию движения, а пауза 0,2 секунды помогает увидеть каждый участок маршрута. Эти блоки не изменяют длину пути.

Проверка маршрута к пункту доставки:
- робот появляется у склада;
- посылка становится видимой;робот проходит верхний участок вправо;
- затем робот перемещается вниз;робот останавливается у пункта доставки;
- посылка исчезает.
Если робот не доехал до пункта доставки, пока не добавляйте возврат. Измените только число повторений нужного участка и запустите проект снова.
Шаг 2. Постройте обратный маршрут
После доставки робот находится справа внизу. Теперь он должен вернуться к складу движением по полю, но не по тем же участкам. В этой миссии он сначала едет влево по нижней стороне, а затем поднимается вверх по левой стороне.
После сообщения [доставка] добавьте:
- ждать 1 секунду
- повторить 30 раз
- изменить x на -10
- следующий костюм
- ждать 0,2 секунды
- повторить 20 раз
- изменить y на 10
- следующий костюм
- ждать 0,2 секунды
- ждать 1 секунду
Так робот замыкает прямоугольный маршрут и возвращается в исходную точку x: -140, y: 75.

Проверка маршрута туда и обратно:
- доехать до пункта доставки;
- скрыть посылку;
- пройти нижний участок влево;подняться к складу;остановиться в исходной точке.
Если робот вернулся не в ту точку, измените только число повторений последнего неверного участка. Не меняйте одновременно размер шага и стартовые координаты.
Не добавляйте в конец блок «перейти в x: -140 y: 75». Он мгновенно переместит робота к складу и не позволит проверить обратный путь.
Шаг 3. Найдите повторяющуюся часть
Теперь программа выполняет одну полную поездку: доставка к пункту и возврат к складу. Найдите в коде:
- где появляется новая посылка;
- какие команды ведут робота к пункту доставки;
- где посылка скрывается;
- какие команды возвращают робота к складу по другому пути.
Одна полная поездка начинается с сообщения [новая доставка] и заканчивается после возвращения робота к складу.
Перед циклом остаются команды, которые выполняются один раз:
- установить размер робота;
- перейти в стартовую точку;
- установить направление 90;
- передать сообщение [подготовка];
- подождать 2 секунды.
Внутри цикла должна находиться вся повторяющаяся часть:
- показать новую посылку;
- доехать до пункта доставки;
- передать сообщение [доставка];
- вернуться к складу;
- подождать перед следующей поездкой.
Цикл — это блок, который повторяет вложенную последовательность команд заданное число раз.
Шаг 4. Добавьте цикл «повторить»
Откройте категорию «Управление» и добавьте блок «повторить 1 раз». Сначала используйте число 1: так легче проверить границы цикла.
Оставьте перед циклом:
- когда флажок
- нажат установить размер 70 %
- перейти в x: -140 y: 75
- повернуться в направлении 90
- передать сообщение [подготовка] и ждать до конца ждать 2 секунды
Внутрь блока «повторить 1 раз» перенесите:
- сообщение [новая доставка];
- оба участка движения к пункту доставки;
- сообщение [доставка];
- оба участка обратного маршрута;
- последнюю паузу 1 секунду.

Стартовые координаты и сообщение [подготовка] внутрь цикла не переносите.
Шаг 5. Проверьте одну полную поездку
Запустите проект с циклом «повторить 1 раз».
- посылка появляется у склада;
- робот доезжает до пункта доставки;
- посылка исчезает;
- робот возвращается по другому маршруту;
- робот останавливается у склада;
- проект завершается.
Если робот доехал до пункта доставки, но не вернулся, проверьте нижнюю границу цикла. Команды обратного маршрута могли остаться под блоком «повторить», а не внутри него. Переместите только эти блоки и снова запустите проект.
Шаг 6. Настройте три доставки
Когда одна поездка внутри цикла работает правильно, измените только число повторений: 1 → 3.
Итоговый код робота:
- когда флажок нажат
- установить размер 70 %
- перейти в x: -140 y: 75
- повернуться в направлении 90
- передать сообщение [подготовка] и ждать до конца ждать 2 секунды
- повторить 3 раза
- передать сообщение [новая доставка] и ждать до конца
- повторить 30 раз
- идти 10 шагов
- следующий костюм
- ждать 0,2 секунды
- повторить 20 раз
- изменить y на -10
- следующий костюм
- ждать 0,2 секунды
- передать сообщение [доставка] и ждать до конца
- ждать 1 секунду
- повторить 30 раз
- изменить x на -10
- следующий костюм
- ждать 0,2 секунды
- повторить 20 раз
- изменить y на 10
- следующий костюм
- ждать 0,2 секунды
- ждать 1 секунду

Запустите проект и посчитайте прибытия к пункту доставки. Робот должен приехать туда три раза, а после третьего возврата остановиться у склада.
«Повторить» или «повторять всегда»
- «повторить 3 раза» завершает программу после трёх доставок;
- «повторять всегда» продолжает выполнять маршрут, пока пользователь не остановит проект.
Для результата, который легко проверить, оставьте конечный цикл на три повторения.
Шаг 7. Проверьте работу посылки
Во время каждого повторения посылка должна:
- появиться рядом со складом перед выездом;
- оставаться видимой во время движения к пункту доставки;
- исчезнуть после сообщения [доставка];
- снова появиться перед следующей поездкой.
Если посылка появилась только перед первой поездкой, проверьте, находится ли сообщение [новая доставка] внутри цикла.
Если смена состояния происходит слишком быстро, временно увеличьте паузу перед обратным маршрутом. После проверки верните значение 1 секунда.
Шаг 8. Сохраните проект
Выберите «Файл → Сохранить на свой компьютер» и используйте имя robot-kurer-tri-dostavki.sb3.
После сохранения запустите проект от начала до конца и отдельно проверьте третью доставку.
Проверка готового проекта робот:
- начинает работу у склада;
- перед каждой поездкой появляется посылка;
- робот трижды доезжает до пункта доставки;
- посылка трижды исчезает;
- робот каждый раз возвращается к складу по другому маршруту;
- после третьего возврата робот остаётся в исходной точке;
- за пределами цикла не выполняется лишний участок.
Нажмите зелёный флаг ещё раз. Проект должен снова начать с первой доставки, а не продолжить с прежнего положения.
Если цикл работает не по плану
| Что произошло | Что проверить первым |
| Робот выполнил только одну доставку | Проверьте, находится ли весь маршрут внутри цикла. |
| Робот трижды доехал до пункта, но не возвращается | Проверьте, входят ли оба участка обратного маршрута в цикл. |
| Робот возвращается, но посылка не появляется снова | Проверьте, находится ли сообщение [новая доставка] внутри цикла. |
| Посылка исчезает слишком рано | Проверьте, после какого участка передаётся сообщение [доставка]. |
| Робот мгновенно переносится к складу | Удалите из цикла блок начальных координат. |
| После третьей доставки выполняется лишний участок | Проверьте, не остались ли команды после цикла. |
| Маршрут не заканчивается | Проверьте, не используется ли «повторять всегда» вместо «повторить 3 раза». |
| Робот возвращается не в исходную точку | Измените число повторений только на неверном участке возврата. |
Главная ошибка: часть поездки осталась вне цикла
Если робот выполняет только одну доставку и останавливается, не меняйте координаты и число шагов. Найдите блок, который выполняется один раз, хотя должен повторяться, и перенесите только его внутрь цикла.
Одна правка за один запуск
Сначала проверяйте границы цикла и порядок команд. Не меняйте одновременно координаты, размер шага и число повторений. После каждой правки снова запускайте весь проект и смотрите, изменился ли нужный этап.
Счётчик доставок в готовом проекте
В готовом файле уже используется переменная «Доставка». Она не управляет маршрутом, а только показывает число завершённых доставок.
Перед сообщением [подготовка] добавьте:
| задать [Доставка] значение 0 |
Сразу после сообщения [доставка] добавьте:
| изменить [Доставка] на 1 |
- перед первой поездкой на сцене показано 0;
- после первого прибытия — 1;
- после второго — 2;
- после третьего — 3.
При повторном нажатии зелёного флага переменная снова должна получить значение 0.

Покажите результат
Получилось выполнить три доставки? Покажите свой проект или задайте вопрос в сообществе VK Robokosha. Напишите, на каком этапе возникла сложность и что происходит после нажатия зелёного флага. Так будет легче разобраться в программе и найти блок, который нужно проверить.
Скачать готовый проект
Скачайте готовый вариант со счётчиком доставок из сообщества VK. В нём робот выполняет три поездки, а переменная «Доставка» показывает значения от 0 до 3.
Скачать «Робот-курьер — 3 доставки со счётчиком» в сообществе VK
В посте откройте прикреплённый файл robot-kurer-tri-dostavki-schetchik.sb3, скачайте его на компьютер и загрузите в RobboScratch через «Файл → Загрузить с компьютера».
Следующий проект
Робот научился выполнять законченную работу: получать посылку, доезжать до пункта доставки, возвращаться к складу по другому маршруту и начинать следующую поездку без ручного перезапуска.
Дальше можно открыть раздел Scratch или выбрать новую практическую задачу в разделе «Проекты».
Итог
В готовой программе разовые команды находятся перед циклом, а одна полная поездка — внутри него. Робот трижды приезжает к пункту доставки, трижды скрывает посылку и каждый раз возвращается к складу по двум другим сторонам поля.
Главная идея проекта — не просто повторить команды, а увидеть границы законченного действия. Когда ребёнок понимает, где начинается и заканчивается одна поездка, он может превратить её в цикл и проверить результат на поле.Пока не добавляйте внешний цикл. Сначала определите начало и конец одной полной поездки.

