Сегодня мы с младшей группой разбирались с соревнованием "Кегельринг-макро" - усложнённой версией кегельринга.

В этом соревновании кегли могут стоять близко к роботу, а могут и далеко; кроме того, некоторые кегли белого цвета, а некоторые - чёрного. Белые нужно вытолкнуть за границу поля, а чёрные - оставить.

К счастью, в EV3 есть инфракрасный датчик расстояния, который можно использовать для определения цвета. Дело в том, что инфракрасное излучение, как и обычный свет, лучше отражается от белых предметов; поэтому белые кегли кажутся такому датчику более близкими, чем чёрные. Для примера предположим, что датчик показываетс следующие числа:

20-30 - если кегля белая и стоит близко;

40-50 - если кегля чёрная и стоит близко;

60-70 - если кегля белая и стоит далеко;

80-90 - если кегля чёрная и стоит далеко.

Нам надо написать программу, отделяющую белые кегли от чёрных: увидев белую кеглю, робот должен ехать прямо, увидев чёрную - поворачиваться.

Это похоже на игру, где один участник загадывает число от 1 до 100, а второй задаёт ему вопросы, на которые можно ответить только "да" или "нет", пытаясь угадать число. Допустим, мальчик Вася задумал число, и Петя спрашивает:

- Это число больше 50?

- Нет.

- Это число меньше 40?

- Нет.

В этом случае кегля чёрная: мы знаем, что числа от 40 до 50 датчик показывает, если кегля чёрная и стоит близко. А вот если бы Вася ответил на второй вопрос "Да" - то число меньше 40, и кегля белая.

(Что будет, если Вася ответит "Да" на первый вопрос? Какой вопрос ему должен задать Петя, чтобы определить, белая кегля или чёрная? Пишите в комментариях: за правильный ответ вы получите дополнительные 100 очков!)

Теперь осталось оформить это в виде программы, где каждый вопрос - это блок "Переключатель":

Вы, наверное, заметили, что вопросы сформулированы по-другому. Например, первый переключатель спрашивает: "Число меньше 60?".

Робот едет прямо в первой и третьей ветках: это те случаи, в которых банка белая (то есть число попадает в диапазон 20-30 или 60-70). Конечно, программу ещё надо доработать: не хватает цикла, отъездов, указания количества оборотов. Но принцип понятен - робот задаёт себе несколько последовательных вопросов, чтобы определить, какое число видит датчик.



Нет комментариев