Опубликован: 28.04.2014 | Уровень: для всех | Доступ: платный
Урок 9:

Простые и сложные условия: что такое логика

< Урок 8 || Урок 9: 123 || Урок 10 >
Ключевые слова: операторы, ПО, игра

Теория

Условие это вопрос, на который можно ответить только "да" или "нет".

В скретч условия сидят на палитре "операторы" и имеют острые уголки по краям.

Из двух условий можно сделать третье с помощью логических связок "и", "или".

По ним видно – это блоки, в которые вставляются 2 условия, и получается третье.

Условие как ограничение

практическое занятие

Для проверки, как работают условия, мы напишем простой проект "Робот-пылесос". Он ходит и чистит пол.

Откроем заготовку "Робот-пылесос".


Работает он так:


Для робота пылесоса можно поставить невидимую инфракрасную стенку, за которую он не заходит.

– это отдельный спрайт, который уже есть в заготовке.

Сначала сделаем так, чтобы он не подъехал слишком близко к стенке. Это и есть условие:

Так как стенка непрозрачная с обеих сторон, не важно, снизу или сверху подъехал пылесос.


Поэтому условие приближения к стенке содержит не разность координат "у", а модуль разности.

Модуль положительного числа и нуля это само число. Модуль отрицательного число – это тоже число, взятое с минусом (можно сказать "написанное без знака минус").

Модуль обозначается по английски abs (абсолютное значение).

abs(0) = 0

abs(2) = 2

abs(11) = 11

abs(-11) = 11

abs(100) = 100

abs(-100) = 100

abs(1) = ?

abs(-1) = ?

abs(7) = ?

abs(7.5) = ?

abs(-7.5) = ?

Откроем спрайт "Стенка1" и составим условие приближения пылесоса к стенке.

Итак, условие приближения пылесоса к стенке это " координата "y" пылесоса и координаты "у" стенки отличается не больше чем на 12. Или другими словами, модуль разности " координата "y" пылесоса и координаты "у" стенки меньше 12.

На скретч эта формула строится из кубиков по схеме:


Итого условие теперь имеет вид:


Пылесос не должен заехать за стенку


Поэтому при этом условии пылесос должен развернуться – оттолкнуться от стены.

Описание действия – это поворот в направлении отраженном от стенки вдоль оси х:


Однако условие относится к спрайту "Стенка1", а действие к пылесосу.

Как мы можем связать условие с действием?

Мы должны использовать механизм сообщений. В скетч это сообщение о событии. Итак, объект "стенка" сообщает пылесосу событие "Преграда Параллель". Мы пишем "параллель", чтобы отличать от стенки сверху-вниз по экрану.


Инфракрасная стенка действительно нечто сообщает пылесосу с помощью радиоволн. Обычная бетонная стенка делает это довольно грубо.

Теперь пылесос должен суметь принять пересланное сообщение.


Теперь пылесос "видит" стенку и не заезжает за нее.

Картинка получается такой:


< Урок 8 || Урок 9: 123 || Урок 10 >
Александра Уланова
Александра Уланова
Ольга Коляда
Ольга Коляда
Анна Гуд
Анна Гуд
Беларусь, г. Минск,ул. Судмалиса 7
Наталья Жабровская
Наталья Жабровская
Россия, г. Москва