В этом уроке:
- Создаём универсальный блок подъезда к перекрёстку;
- Поворот налево при встрече знака "направление движения".
Направление движения
![](http://iarduino.ru/img/upload/da195a510ee44265df09512d2e8c5885.png)
Ещё один знак, с которым мы познакомимся, разрешает движение только в направлении, указанном стрелкой. Существуют также двунаправленные знаки, которые указывают две стороны поворота. В таком случае движение может быть продолжено в любую из указанных сторон.
Если знак "Направление движения" разрешает движение налево, то он разрешает и разворот.
Создание блока подъезда к перекрёстку
Итак, если машинка встречает данный знак, значит впереди её ждёт перекрёсток, на котором она должна повернуть налево. У нас уже есть похожий алгоритм: мы использовали его для поворота на перекрёстке, перед которым установлен светофор.
Сейчас нам необходимо скопировать алгоритм из того урока и немного изменить его. В частности, нам не нужен генератор случайных чисел для выбора направления поворота, поскольку направление указывает знак.
Когда мы говорим о программировании, хорошей практикой считается создание блоков, если эти блоки будут использоваться несколько раз. Мы это уже делали, создавая блок движения по линии и поворотов налево и направо. Сейчас же нам нужно подъехать к перекрёстку, как мы делали это при проезде перекрёстка на светофоре, поэтому давайте вернёмся к алгоритму проезда светофора и создадим из него блок, который будем использовать и в этом уроке.
(картинка кликабельна)
![](http://iarduino.ru/img/upload/1f8a4c5ec8c536b08b2e1f83b3285e25.png)
Аналогично тому, как мы делали в уроке Движение по линии, создайте блок.
Инструменты -> Конструктор Мой блок. Задайте имя блока (мы назвали его move_to) и выберите подходящий значок. Нажмите завершить.
Алгоритм движения на светофоре стал гораздо компактнее, а у нас появился новый блок, который отвечает за подъезд к перекрёстку. Теперь мы можем использовать данный блок и в других местах программы.
![](http://iarduino.ru/img/upload/cc466b9fe3909cafa89138c7c30325b6.png)
Поворот налево
Переходим непосредственно к алгоритму данного урока. Добавляем блок ИК-приёмника и выбираем знак "Поворот налево". Он находится в группе "Дорожные знаки 2".
![](http://iarduino.ru/img/upload/8e17866fbbe630fb2b53318be1458d2e.png)
Добавляем переключатель. Если знак обнаружен, то движемся прямо до момента, пока не обнаружим перекрёсток (созданный нами только что блок move_to), далее — поворачиваем налево (блок turn_felt, который мы также создали в уроке поворота на перекрёстке). На этом алгоритм готов.
![](http://iarduino.ru/img/upload/234a4252e47ba9869a8ea0564f3f31b9.png)
Загрузите программу, поставьте машинку на трассу и проверьте, что она работает корректно.
Обсуждение