Урок Progress
0% Complete
Несколько знаков
Как автомобиль обрабатывает несколько знаков?
Здесь можно выделить 2 правила:
- Set a Priority List (Задать список приоритетов): Мы можем задать список приоритетов, который поможет определить правила для правил. Это легко можно сделать при помощи блока if-else (если-иначе). Согласно программе ниже, робот повернёт налево.
- Closes First (Сначала ближний): Робот будет следовать самому ближнему к нему знаку. Также как в этом случае, наш робот повернёт направо.
Давайте напишем программу для второго условия. Для того чтобы осуществить этот проект, нам нужно разделить его на 2 части:
- Нахождение ближайшего знака.
- Выполнение действие соответствующее этому знаку.
Напишем код:
- За основу возьмём программу для самоуправляемого робота.
- Создадим новый пользовательский блок из панели My Block (Мои блоки) под названием Move Robot (Передвинуть робота). Добавь все условия if , относящиеся к знакам.
Основная программа теперь выглядит вот так:
- Создай три переменные и задай следующие величины:
- i в качестве счётчика циклов – Задай значение 1.
- Max Width (Максимальная ширина) для запоминания величины максимальной ширины. Задай значение 0.
- Max Width Object (Объект с максимальной шириной) для запоминания номера объекта с максимальной шириной.
А теперь мы запустим цикл, чтобы выявить номер объекта с максимальной шириной.
- Добавим блок repeat () (повторить_) из панели Control (Управление). Добавим блок # of objects detected (# объектов обнаружено), чтобы запустить цикл.
- В блок repeat () (повторить_) добавим блок if (если). Добавим блок () > (). Добавим блок () of Object () (_объекта_) в первое окошко блока () > (). Во второе окошко добавим блок Max Width (Максимальная ширина).
- Выберем width (ширина) в качестве параметра в блоке () of Object () (_объекта_) и добавим переменную i в номере объекта.
- Добавим блок set (Max Width) variable as () (задать переменную (максимальной ширины) _) и добавим блок () of object () (_объекта_). Выберем width (ширина) в качестве параметра в блоке () of Object () (_объекта_) и добавим переменную i в номере объекта..
- Добавим блок set (Max Width Object) variable as () (задать переменную (объект с максимальной шириной)_) и задай значение i.
- Добавим блок change () by () (заменить _на_) ниже блока if (если). Выберим i и зададим значение переменной 1. Это увеличит значение счётчика на 1 с каждым циклом.
- Добавим блок Move Robot (Передвинуть робота) ниже блока repeat () (повторить_).
- Наконец, в программу Move Robot (Передвинуть робота) добавим блок Max Width Object (Объект с максимальной шириной) и все блоки () of object () (_объекта_).
Программа завершена!
Установим знаки и запустим программу для того, чтобы её проверить!
Испытаем программу с разными формами знаков.