Простые и сложные условия: что такое логика
Теория
Условие это вопрос, на который можно ответить только "да" или "нет".
В скретч условия сидят на палитре "операторы" и имеют острые уголки по краям.
Из двух условий можно сделать третье с помощью логических связок "и", "или".
По ним видно – это блоки, в которые вставляются 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", а действие к пылесосу.
Как мы можем связать условие с действием?
Мы должны использовать механизм сообщений. В скетч это сообщение о событии. Итак, объект "стенка" сообщает пылесосу событие "Преграда Параллель". Мы пишем "параллель", чтобы отличать от стенки сверху-вниз по экрану.
Инфракрасная стенка действительно нечто сообщает пылесосу с помощью радиоволн. Обычная бетонная стенка делает это довольно грубо.
Теперь пылесос должен суметь принять пересланное сообщение.
Теперь пылесос "видит" стенку и не заезжает за нее.
Картинка получается такой: