Математика и программирование для младших классов

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

Разбить на страницы
Показывать лекцию целиком

Теория

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

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

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

По ним видно – это блоки, в которые вставляются 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", а действие к пылесосу.

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

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

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

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

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

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

Добавим вертикальную стенку

Щелкнем правой кнопкой мышки по спрайту "Стенка1" и выберем пункт меню "Дублировать". Развернем лучик от стенки вот так:

Затем меняем скрипт, заменяя координату у на x.

Переходим к спрайту пылесос и добавляем реакцию на событие "Преграда верт".

Поможем роботу

Задачи

Над задачей со стенкой можно поработать

  • Можно поставить несколько стенок. Используя средства копирования спрайтов и скриптов, сделайте на сцене 4 стенки 2 горизонтальных, 2 вертикальных

    Сделайте так, чтобы пылесос "убирал" такую часть комнаты:

  • Какой формы куски можно ограничить стенками, которые у нас есть? Какие нельзя?
  • Дополнительные условия

    Мы сделали стенку не совсем честно. На самом деле стенка дает свет луча только в одну сторону – с другой стороны пылесос может запросто ее объехать.

    Для того, чтобы написать такое условие, мы используем связку "и"

    К существующему условию добавим условие, указывающее на положение стенки.

    Теперь пылесос ездит так:

    Он отталкивается от стенки впереди, но спокойно объезжает ее сбоку.

    Еще комбинации

    Задачи

  • Заставьте робота убирать такой кусок пола:
  • Как заставить убирать только вдоль стен и не заезжать на середину? Подсказка – нужно ограничить "длину" стенок.
  • Разбираем игру "Букашка"

    Игра "букашка" на одной сцене. Букашка идет по дороге. Нельзя с нее свернуть – это проигрыш.

    Выигрыш – добраться до финиша.

    Работа с большой сценой

    Как сделать сцену больше, чем у нас есть? Так же, как сделать кота движущимся – нужно несколько сцен. Тогда по мере движения букашка переползает с одного куска карты на другой.

    Когда букашка подползает к краю карты, мы подкладываем ей новую сцену, и она идет дальше.

    Для того, чтобы понять, как правильно перейти от одной карты к другой нам понадобиться понятие "система координат".

    Мы уже знакомы с координатами точек. Для того чтобы их вычислить, нужно иметь координатные оси. А что будет, если мы нарисуем координатные оси как-то по-другому? Можем мы так сделать? Можем. А как теперь быть с координатами точки в новых координатах?

    Пересчет координат в новой системе координат

    Теория

    Рассмотрим картинку.

    На ней нарисованы 2 системы координат.

    Точка О' – это начало координат в системе координат X', Y'.

    Координаты точки О' в системе координат X',Y' (вопрос, пауза) – (0,0).

    Координаты точки О' в системе координат X,Y (120,-70).

    А наоборот, начало координат 0 в системе X, Y (-120, 70) – то же самое, только с минусом. Это и понятно.

    А теперь попробуем понять, как по координате в системе X, Y рассчитать координату в системе X',Y'?

    Картинка А, 0, O' является треугольником векторов.

    Если вектор пройти по вектору $$\overrightarrow {0, O'}$$ потом пройти по вектору $$\overrightarrow {O'A}$$ мы попадем в точку А. То есть мы пройдем вектор $$\overrightarrow {0, A'}$$

    Пройти по двум векторам – это означает их сложить. Складываем векторы мы покомпонентно, то есть координату X с X, Y с Y.

    Действительно сложив вектора $$\overrightarrow {0, O'}$$ и $$\overrightarrow {O', A}$$ мы получим (120,-70) + (-70, 110) = (120-70, -70+110) = (50, 40) – как раз вектор $$\overrightarrow {0, A}$$

    Получается, что чтобы перейти от координат точки А в системе координат с началом в точке О' к системе координат с началом в точке 0 надо к вектору координат точки А прибавить вектор $$\overrightarrow {0, O'}$$

    Вообще-то мы, наверное хотели бы сделать наоборот, от знакомой системы с началом координат в точке 0 перейти к новой системе координат с началом в точке О'. Для этого нам надо прибавить к вектору координат точки А вектор $$\overrightarrow {O'0}$$ = (-120, 70) или, что тоже, вычесть из вектора $$\overrightarrow {0, A}$$ вектор $$\overrightarrow {0, O'}$$ = (120, -70).

    Действительно,

    $$\overrightarrow {O'0}$$ + $$\overrightarrow {O'A}$$ = (50, 40) + (-120, 70) = -(70, 110)

    Примеры

  • Найдите в координатах X',Y' координаты точек В, С, D, E
  • Если начало координат перенести в точку С, какими окажутся координаты точек С, 0, А, В?
  • Практическая работа – разбиение карты на сцены и пересчет координат.

    Теперь мы покажем, как применять данные знания практически.

    Каждая сцена имеет свои координаты на карте. То есть большая карта может быть разбита на две или больше сцен. У нас будет всего 2 сцены.

    Развитие игры "букашка"

    Вставьте сложную сцену в игру.

    Сделайте свою сцену.

    Добавьте букашке второй костюм (из упражнения) – и добейтесь того, чтобы букашка, когда движется, передвигала лапками.

    Страницы:

    Теория

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

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

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

    По ним видно – это блоки, в которые вставляются 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", а действие к пылесосу.

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

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

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

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

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

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

    Добавим вертикальную стенку

    Щелкнем правой кнопкой мышки по спрайту "Стенка1" и выберем пункт меню "Дублировать". Развернем лучик от стенки вот так:

    Затем меняем скрипт, заменяя координату у на x.

    Переходим к спрайту пылесос и добавляем реакцию на событие "Преграда верт".

    Поможем роботу

    Задачи

    Над задачей со стенкой можно поработать

  • Можно поставить несколько стенок. Используя средства копирования спрайтов и скриптов, сделайте на сцене 4 стенки 2 горизонтальных, 2 вертикальных

    Сделайте так, чтобы пылесос "убирал" такую часть комнаты:

  • Какой формы куски можно ограничить стенками, которые у нас есть? Какие нельзя?
  • Дополнительные условия

    Мы сделали стенку не совсем честно. На самом деле стенка дает свет луча только в одну сторону – с другой стороны пылесос может запросто ее объехать.

    Для того, чтобы написать такое условие, мы используем связку "и"

    К существующему условию добавим условие, указывающее на положение стенки.

    Теперь пылесос ездит так:

    Он отталкивается от стенки впереди, но спокойно объезжает ее сбоку.

    Еще комбинации

    Задачи

  • Заставьте робота убирать такой кусок пола:
  • Как заставить убирать только вдоль стен и не заезжать на середину? Подсказка – нужно ограничить "длину" стенок.
  • Разбираем игру "Букашка"

    Игра "букашка" на одной сцене. Букашка идет по дороге. Нельзя с нее свернуть – это проигрыш.

    Выигрыш – добраться до финиша.

    Работа с большой сценой

    Как сделать сцену больше, чем у нас есть? Так же, как сделать кота движущимся – нужно несколько сцен. Тогда по мере движения букашка переползает с одного куска карты на другой.

    Когда букашка подползает к краю карты, мы подкладываем ей новую сцену, и она идет дальше.

    Для того, чтобы понять, как правильно перейти от одной карты к другой нам понадобиться понятие "система координат".

    Мы уже знакомы с координатами точек. Для того чтобы их вычислить, нужно иметь координатные оси. А что будет, если мы нарисуем координатные оси как-то по-другому? Можем мы так сделать? Можем. А как теперь быть с координатами точки в новых координатах?

    Пересчет координат в новой системе координат

    Теория

    Рассмотрим картинку.

    На ней нарисованы 2 системы координат.

    Точка О' – это начало координат в системе координат X', Y'.

    Координаты точки О' в системе координат X',Y' (вопрос, пауза) – (0,0).

    Координаты точки О' в системе координат X,Y (120,-70).

    А наоборот, начало координат 0 в системе X, Y (-120, 70) – то же самое, только с минусом. Это и понятно.

    А теперь попробуем понять, как по координате в системе X, Y рассчитать координату в системе X',Y'?

    Картинка А, 0, O' является треугольником векторов.

    Если вектор пройти по вектору $$\overrightarrow {0, O'}$$ потом пройти по вектору $$\overrightarrow {O'A}$$ мы попадем в точку А. То есть мы пройдем вектор $$\overrightarrow {0, A'}$$

    Пройти по двум векторам – это означает их сложить. Складываем векторы мы покомпонентно, то есть координату X с X, Y с Y.

    Действительно сложив вектора $$\overrightarrow {0, O'}$$ и $$\overrightarrow {O', A}$$ мы получим (120,-70) + (-70, 110) = (120-70, -70+110) = (50, 40) – как раз вектор $$\overrightarrow {0, A}$$

    Получается, что чтобы перейти от координат точки А в системе координат с началом в точке О' к системе координат с началом в точке 0 надо к вектору координат точки А прибавить вектор $$\overrightarrow {0, O'}$$

    Вообще-то мы, наверное хотели бы сделать наоборот, от знакомой системы с началом координат в точке 0 перейти к новой системе координат с началом в точке О'. Для этого нам надо прибавить к вектору координат точки А вектор $$\overrightarrow {O'0}$$ = (-120, 70) или, что тоже, вычесть из вектора $$\overrightarrow {0, A}$$ вектор $$\overrightarrow {0, O'}$$ = (120, -70).

    Действительно,

    $$\overrightarrow {O'0}$$ + $$\overrightarrow {O'A}$$ = (50, 40) + (-120, 70) = -(70, 110)

    Примеры

  • Найдите в координатах X',Y' координаты точек В, С, D, E
  • Если начало координат перенести в точку С, какими окажутся координаты точек С, 0, А, В?
  • Практическая работа – разбиение карты на сцены и пересчет координат.

    Теперь мы покажем, как применять данные знания практически.

    Каждая сцена имеет свои координаты на карте. То есть большая карта может быть разбита на две или больше сцен. У нас будет всего 2 сцены.

    Развитие игры "букашка"

    Вставьте сложную сцену в игру.

    Сделайте свою сцену.

    Добавьте букашке второй костюм (из упражнения) – и добейтесь того, чтобы букашка, когда движется, передвигала лапками.

    Вернуться к учебному плану