В стелс-эпизоде на Титане гусеничный робот «Страж» выполняет роль непроходимой преграды: он курсирует в непосредственной близости от ворот главного гермошлюза базы и плотно перекрывает проход внутрь. Если космонавт попробует подойти к запертым створкам напрямую, робот успеет перехватить его, потому что для проверки доступа и открытия шлюза требуется время. Геймдизайнер спроектировал маршрут дозора непосредственно перед воротами: чтобы сканеры робота перекрывали всю площадку перед шлюзом, робот должен двигаться по сложной траектории через четыре контрольные точки (0; 0)→(0; 10)→(20; 0)→(20; 10)→(0; 0) Программист подготовил заготовку машины состояний в редакторе «Кисериада GE»: Программист подготовил заготовку машины состояний в редакторе «Кибериада GE»: 1. Весь дозор объединен внутри суперсостояния «Охраняет ворота» (На входе запущен радар поиска нарушителя в радиусе 6 метров, при обнаружении которого робот выходит в состояние «Преследует нарушителя»). 2. Внутри настроен замкнутый маршрут из 4 состояний: Движение 1 → Движение 2 → Движение 3 → Движение 4. Все переходы между ними срабатывают по событию МодульДвижения.ПеремещениеВыполнено. 3. Вертикальные отрезки уже запрограммированы. Состояния диагональных переездов через центр площадки — Движение 2 (плашка
Пошаговое решение
Маршрут начинается в точке (0; 0). После вертикального движения вверх робот попадает в точку (0; 10).
(0; 0) → (0; 10)В блоке А робот должен перейти из (0; 10) в (20; 0). Для этого нужно переместиться вправо на 20 и вниз на 10.
А: вправо 20, вниз 10Затем вертикальное движение переводит робота из (20; 0) в (20; 10). Из этой точки блок Б должен вернуть его в начало: влево на 20 и вниз на 10.
Б: влево 20, вниз 10Проверим весь маршрут: после команд блока А робот окажется в (20; 0), а после команд блока Б — в (0; 0). Значит, траектория замкнётся.
(0; 0) → (0; 10) → (20; 0) → (20; 10) → (0; 0)Подробное объяснение
Маршрут задан точками: (0; 0) → (0; 10) → (20; 0) → (20; 10) → (0; 0). Из точки (0; 10) робот должен попасть в (20; 0). Значит, в блоке А нужны команды: МодульДвижения.ЗадатьКоординатуВниз(10) МодульДвижения.ЗадатьКоординатуВправо(20) Из точки (20; 10) робот возвращается в (0; 0). Поэтому в блоке Б нужны команды: МодульДвижения.ЗадатьКоординатуВниз(10) МодульДвижения.ЗадатьКоординатуВлево(20) Так робот проходит все указанные точки и замыкает маршрут. Ответ: А — вниз(10) и вправо(20); Б — вниз(10) и влево(20).

Войти







