Перейти к основному содержимому

9.05. Scratch

Родителям и детям
Визуальный язык программирования Scratch
Как он работает и как в нём зарегистрироваться
События и сообщения
Внешний вид, анимации и звуки
Условия и условный оператор
Циклы и функции
Переменные и типы данных
Случайные числа и диапазоны
Клоны
Добавить mermaid схему
Добавить задачи

Представьте, что вы хотите научиться ездить на велосипеде. Вам не дают сразу гоночную машину или космический корабль — вы садитесь на трёхколёсный велосипед с боковыми колёсиками. Он не самый быстрый, но на нём можно понять: как крутить педали, как держать равновесие, как поворачивать.

Scratch — это велосипед для программистов.

Это не «игрушка» — это полноценная среда программирования, разработанная в MIT (Массачусетском технологическом институте), где учат самых разных людей — от первоклассников до исследователей. В Scratch вы не пишете текст на языке, который можно ошибиться в одной букве и ничего не заработает. Вместо этого вы собираете программы из цветных блоков, как из пазлов. Блоки подходят друг к другу только тогда, когда это логично — например, к блоку «если …» можно подключить только условие, а не звук. Это называется визуальным программированием.

И да — на Scratch можно создать настоящую игру, мультфильм, музыкальный инструмент, тест или даже простого чат-бота. Всё, что вы сейчас держите в руках (планшет, телефон, компьютер), тоже когда-то начиналось с таких «конструкторов».


🔧 Часть 1. Как устроен Scratch и как в него войти

1.1. Что такое Scratch?

Scratch — это веб-платформа: чтобы начать, достаточно открыть браузер и перейти на сайт https://scratch.mit.edu. Там вы увидите большую зелёную кнопку «Создать» — она и откроет редактор.

Редактор разделён на несколько областей:

  • Сцена — это «экран» вашей программы. Тут всё происходит: персонажи двигаются, появляются вспышки, играют звуки.
  • Спрайты — это персонажи, предметы, кнопки. У каждой игры может быть один или сто спрайтов.
  • Область кода — сюда вы перетаскиваете блоки, чтобы составить программу.
  • Палитра блоков — «ящик с деталями», разделённый по темам: движение, внешний вид, звук, события и т.д.
  • Список спрайтов — справа внизу: тут вы выбираете, кому из героев вы сейчас пишете инструкции.

💡 Важно: Scratch работает в браузере, и ничего устанавливать не нужно. Но чтобы сохранять свои проекты, нужно зарегистрироваться.

1.2. Как зарегистрироваться (безопасно и бесплатно)

  1. Нажмите «Присоединиться к Scratch» в правом верхнем углу.
  2. Придумайте имя пользователя — оно будет видно другим, но не показывает ваше настоящее имя. Выбирайте что-то вроде «КосмоКот_2025» или «Робо_Алиса».
  3. Укажите дату рождения — это нужно только для того, чтобы платформа понимала, что вы моложе 13 лет (тогда включаются особые правила защиты).
  4. Выберите пароль — пусть он будет надёжным (например, Пароль7!Звезда).
  5. Подтвердите почту: на неё придёт письмо с ссылкой. Перейдите по ней — и готово!

Безопасность: Scratch запрещает публиковать личные данные (номера телефонов, адреса школы, фото с лицом). Всё, что вы опубликуете, проходят модераторы. Можно работать только в личном режиме — тогда никто, кроме вас, не увидит проекты.


⚡ Часть 2. События и сообщения — как герои «разговаривают»

2.1. Что такое событие?

Представьте, что вы идёте по улице и внезапно слышите: «Тимур, подожди!» — вы останавливаетесь. Это событие (вас окликнули) → реакция (вы остановились).

В Scratch программы тоже работают по принципу:

Когда что-то произошло → сделать что-то.

Эти «что-то произошло» и есть события.

2.2. Основные события в Scratch

БлокЧто значитПример использования
Когда 🟢 нажатПри нажатии на зелёный флажок в углу сценыЗапуск всей игры
Когда нажата клавиша [пробел]После нажатия клавишиПрыжок, выстрел
Когда получил сообщение [старт]Когда другой спрайт отправил это сообщениеЗапуск врагов после таймера

2.3. Как работают сообщения?

Сообщения — это способ организовать порядок действий между спрайтами, даже если они «не видят друг друга».

Например:

Главный герой приходит к двери → отправляет сообщение «открыть дверь» → дверь слышит это сообщение и начинает анимацию открытия.

Это важнее, чем кажется: если бы каждый спрайт сам решал, в какой момент начинать действие, игра быстро стала бы хаотичной.

2.4. Пример: «Старт игры по команде»

Цель: при нажатии на зелёный флаг герой ждёт 2 секунды, затем кричит «Поехали!» и отправляет сигнал — и только тогда враги начинают двигаться.

Шаги:

  1. У героя:

    [Когда 🟢 нажат]
    ждать (2) сек.
    сказать [Поехали!] в течение (1) сек.
    отправить сообщение [старт]
  2. У врага:

    [Когда получил сообщение [старт]]
    повторять
    изменить x на (-5)
    ждать (0.1) сек.

Так герой управляет временем старта — враги не пойдут, пока не услышат сигнал.

2.5. Задания для самостоятельной работы

➡️ Задание 1. «Светофор»
Создайте три круга: красный, жёлтый, зелёный.

  • При нажатии на зелёный флаг все выключены.
  • Через 1 сек. — включается красный.
  • Через 2 сек. — жёлтый.
  • Через 1 сек. — зелёный и отправляется сообщение «можно идти».
  • Пешеход (спрайт) начинает движение только после «можно идти».

➡️ Задание 2. «Волшебная дверь»
Герой подходит к двери (проверка: если касается двери?).

  • Герой говорит: «Абракадабра!»
  • Отправляет сообщение «открыть»
  • Дверь меняет костюм (открыта/закрыта), только получив это сообщение.

➡️ Задание 3. «Эстафета»
Три спрайта стоят в линию.

  • Первый ждёт 🟢, говорит «Старт!», отправляет «беги1».
  • Второй слышит «беги1», бежит 3 сек., отправляет «беги2».
  • Третий — «беги2» → бежит и кричит «Финиш!».

➡️ Задание 4 (продвинутое). «Диалог между двумя котами»
Кот А спрашивает: «Как дела?» → ждёт ответа → говорит «Понял!» → отправляет «ответ получен».
Кот Б, получив сообщение, говорит «Теперь моя очередь…» и задаёт свой вопрос.
(Подсказка: используйте блок спросить [...] и ждать, затем ответ в условии.)


👗 Часть 3. Внешний вид, анимация и звуки — оживляем мир

3.1. Костюмы = кадры анимации

У каждого спрайта может быть несколько костюмов — это как кадры в мультфильме. Например, кот может иметь:

  • кот_стоит
  • кот_бежит_1
  • кот_бежит_2
  • кот_прыгает

Чтобы создать иллюзию движения, мы быстро переключаем костюмы.

Основные блоки:

  • следующий костюм
  • включить костюм [имя]
  • ждать (0.1) сек. — чтобы кадры не мелькали слишком быстро

3.2. Эффекты: не только движение, но и волшебство

Scratch позволяет менять визуальные свойства спрайта без смены костюма:

ЭффектЗначениеПример
цвет0–200 (красный → фиолетовый → снова красный)Плавное мерцание
яркость-100 (тёмный) до 100 (светлый)Вспышка при ударе
размытие0–100«туман», переходы
размер% от исходногоУвеличение при усилении

🎨 Совет: эффекты можно «накапливать». Чтобы сбросить — используйте установить эффект [...] в (0).

3.3. Звуки: от щелчка до симфонии

Scratch имеет встроенную библиотеку звуков (звуки животных, шагов, выстрелов, музыки). Можно также загрузить свой (формат .mp3 или .wav).

Важные блоки:

  • воспроизвести звук [мяу] — запускает звук и сразу продолжает выполнение скрипта
  • воспроизвести звук [мяу] и ждать — ждёт, пока звук закончится
  • остановить все звуки — полезно при рестарте игры

3.4. Пример: «Кот прыгает с эффектом»

[Когда нажата клавиша [пробел]]
установить эффект [яркость] в (50)
воспроизвести звук [прыжок] и ждать
изменить y на (80) // вверх
ждать (0.2) сек.
повторить (8)
изменить y на (-10)
ждать (0.05) сек.
установить эффект [яркость] в (0)

Так прыжок выглядит ярче и «веселее».

3.5. Задания

➡️ Задание 1. «Гневный дракон»
Дракон стоит спокойно. При касании героя:

  • Меняет костюм на дракон_злой
  • Эффект цвет плавно меняется от 0 до 100 (красный → жёлтый)
  • Играет звук рык
  • Говорит «РРР!» на 1 сек.

➡️ Задание 2. «Танцующий робот»
Робот имеет 4 костюма: робот_1, робот_2, робот_3, робот_4.

  • Каждые 0.15 сек. → следующий костюм
  • Одновременно: эффект размер колеблется от 90 до 110
  • Фоновая музыка играет всегда (отдельный скрипт)

➡️ Задание 3. «Волшебное превращение»
Бабочка касается цветка →

  • Звук магия
  • Эффект размытие с 0 до 100 за 0.5 сек.
  • Смена костюма на бабочка_сияющая
  • Эффект размытие обратно к 0

➡️ Задание 4. «Реакция на победу»
При достижении 10 очков:

  • Остановить все звуки
  • Воспроизвести звук победа и ждать
  • Показать надпись (спрайт-табличка)
  • Плавное мерцание фона через эффект цвет

🧭 Часть 4. Перемещение спрайтов — координаты, как в географии

4.1. Система координат в Scratch

Экран в Scratch — это координатная плоскость.

  • Центр сцены — точка (0, 0)
  • X — горизонталь: слева от центра — отрицательные числа (до -240), справа — положительные (до +240)
  • Y — вертикаль: внизу — отрицательные (до -180), вверху — положительные (до +180)

📏 Размер сцены: 480×360 пикселей.

4.2. Как двигаться?

БлокЧто делает
идти на (10) шаговДвигается в текущем направлении
изменить x на (5)Сдвинуться вправо на 5 пикселей
изменить y на (-10)Сдвинуться вниз на 10
направить в сторону (90)Повернуть вправо (0° — вверх, 90° — вправо, 180° — вниз, -90° — влево)
направить в сторону [спрайт]«Смотреть на» другой объект

4.3. Отскоки — как в пинг-понге

Чтобы мяч отскакивал от стен, используйте:

[Когда 🟢 нажат]
направить в сторону (случайное от (-45) до (45))
повторять
идти на (5) шагов
если <касается края?> то
отскочить от края
конец

💡 отскочить от края — это не просто разворот. Scratch автоматически меняет направление, как настоящий мяч: угол падения = углу отражения.

4.4. Задания

➡️ Задание 1. «Следуй за курсором»
Спрайт всегда смотрит на мышь и медленно движется к ней (но не резко!).
(Подсказка: используйте направить в сторону [мышка], затем идти на (2) шага в цикле всегда)

➡️ Задание 2. «Тень героя»
Создайте второй спрайт — «тень».
Он должен повторять движения героя, но с задержкой:

  • Герой двигается → тень ждёт 0.2 сек. → перейти в x: (x героя) y: (y героя)

➡️ Задание 3. «Летающая тарелка»
Тарелка движется по кругу вокруг центра:

установить x в (100)
установить y в (0)
повторять
изменить x на (-y * 0.1)
изменить y на (x * 0.1)
ждать (0.02) сек.

(Это пример простой симуляции кругового движения — можно не объяснять формулу, но показать, что код «заставляет летать по окружности»)

➡️ Задание 4. «Лабиринт с отскоком»
Герой не должен проходить сквозь стены (спрайты-прямоугольники).
Если касается [стена]? → отступить на 5 пикселей назад (изменить x/y на противоположное).


🧠 Часть 5. Условия и условный оператор — учим программу думать

5.1. Что такое условие?

Представьте, что вы выходите из дома. Вы смотрите в окно и задаёте себе вопрос:

«Идёт ли дождь?»

Если да → вы берёте зонт.
Если нет → оставляете его дома.

Это и есть условное решение: действие зависит от проверки.

В Scratch условия выглядят так:

если <...> то
...
конец

А если нужно предусмотреть оба варианта:

если <...> то
...
иначе
...
конец

5.2. Где «...»? — логические условия

Scratch позволяет проверять самые разные ситуации. Вот основные:

Тип условияБлокПример использования
Касание<касается [спрайт/мышка/край]?>Поймал монетку? Ударился о врага?
Сравнение чисел<(очки) > (10)>Достаточно очков для перехода?
Сравнение строк<(имя) = [Макс]>Проверка пароля или имени
Логические связки< <A> и <B> >, < <A> или <B> >, <не <C>>«Касается земли и не летит» → можно прыгать

🔍 Обратите внимание: условия всегда дают ответ — да (истина) или нет (ложь). Именно поэтому они подходят только в «шестиугольные» разъёмы блоков если и пока.

5.3. Пример: «Сбор монет и жизнь»

Герой собирает монеты (+1 очко), но если касается врага — теряет жизнь.

[Когда 🟢 нажат]
установить [жизни v] в (3)
установить [очки v] в (0)

всегда
если <касается [монета]?> то
изменить [очки v] на (1)
спрятать // монета исчезает
воспроизвести звук [звон]
конец

если <касается [враг]?> то
изменить [жизни v] на (-1)
сказать [Ай!] в течение (0.5) сек.
ждать (1) сек. // бессмертие на 1 сек
конец

если <(жизни) = (0)> то
остановить [все v]
сказать [Игра окончена.] в течение (3) сек.
конец

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

5.4. Задания

➡️ Задание 1. «Светофор для игрока»
Герой может двигаться только когда горит зелёный.

  • Создайте переменную светофор = зелёный
  • При нажатии стрелок:
    если <(светофор) = [зелёный]> то
    изменить x на (10)
    конец

➡️ Задание 2. «Умный прыжок»
Герой прыгает только если стоит на земле.

  • Проверка: если <касается [земля]?> то …
  • Внутри — блок прыжка (изменение y и т.д.)

➡️ Задание 3. «Секретный код»
Герой подходит к двери → спрашивает: «Пароль?»

  • Если ответ = "кот", то:
    • сказать «Верно!»
    • открыть дверь (смена костюма + сообщение)
  • Иначе:
    • сказать «Неверно!»
    • звук ошибка

➡️ Задание 4. «Режим босса»
Если очки > 50, включается «режим босса»:

  • Фон меняется
  • Музыка становится напряжённой
  • Появляется босс (показать спрайт)
  • Обычные враги исчезают

🔁 Часть 6. Циклы — как избежать тысячи одинаковых команд

6.1. Почему циклы нужны?

Представьте: вам нужно нарисовать забор из 20 досок.
Можно 20 раз написать:

«Поставить доску. Сдвинуться вправо.»

А можно сказать один раз:

«Повтори 20 раз: поставить доску и сдвинуться.»

Это и есть цикл — повторение блока кода заданное число раз или пока выполняется условие.

6.2. Три типа циклов в Scratch

ТипБлокКогда использовать
Повтори N разповторить (10)Точно известно, сколько раз: шаги, взмахи крыльями
ВсегдавсегдаНепрерывные действия: движение, проверка касаний
Покаповторять пока <...>Действие до тех пор, пока условие истинно: «бежать, пока не дойдёшь до финиша»

6.3. Пример: «Черепашка рисует квадрат»

[Когда 🟢 нажат]
опустить перо // из модуля «Перо»
повторить (4)
идти на (100) шагов
повернуть направо на (90) градусов
конец
поднять перо

Один цикл — и готово. Без него пришлось бы 4 раза копировать одни и те же два блока.

6.4. Важно: «всегда» ≠ «зависание»

Цикл всегда — не ошибка. Он работает параллельно с другими скриптами. Но если внутри всегда нет ждать, Scratch может «захлебнуться» — поэтому всегда добавляйте небольшую паузу (0.01–0.1 сек), особенно при проверках.

6.5. Задания

➡️ Задание 1. «Мигающая лампа»
Лампа должна мигать: 0.5 сек включена, 0.5 сек выключена — бесконечно.
(Подсказка: включить костюм [вкл], ждать, включить костюм [выкл], ждать — внутри всегда)

➡️ Задание 2. «Сбор 5 монет»
Герой должен собрать ровно 5 монет. После пятой — появляется дверь.

  • Переменная собрано
  • Цикл повторять пока <(собрано) < (5)>
  • Внутри — ожидание если касается монеты…изменить собрано на (1)

➡️ Задание 3. «Эскалатор»
Лестница движется вверх:

  • всегда:
    • изменить y на (1)
    • если y > 180, то установить y в (-180)

➡️ Задание 4. «Прыжок с ускорением»
Реалистичный прыжок:

установить [прыгать v] в (0)
всегда
если <нажата клавиша [пробел]?> и <касается земли?> то
установить [прыгать v] в (10)
конец

если <(прыгать) > (0)> то
изменить y на (прыгать)
изменить [прыгать v] на (-0.5) // гравитация
конец

(Здесь цикл всегда управляет физикой — даже когда герой «в воздухе»)


📦 Часть 7. Переменные и типы данных — ящики с этикетками

7.1. Что такое переменная?

Представьте, что у вас есть ящики, на каждом — этикетка:

  • очки
  • имя
  • игра_активна

В ящик очки вы кладёте число: 5, 100, -3.
В имя — слово: «Алиса», «Робо-23».
В игра_активна — флажок: да / нет.

В программировании такой «ящик» называют переменной — потому что то, что в нём лежит, может меняться со временем.

7.2. Как создать переменную?

В Scratch:

  1. Вкладка «Данные»«Создать переменную»
  2. Название: очки
  3. Выбор:
    • Для всех спрайтов (глобальная) — если всем нужно знать счёт
    • Только для этого спрайта (локальная) — например, здоровье у каждого врага своё

После создания появляются блоки:

  • установить [очки v] в (0)
  • изменить [очки v] на (1)
  • (очки)значение переменной (можно подставлять в условия и формулы)

7.3. Типы данных — не все ящики одинаковые

ТипЧто хранитПримерыКак определяется в Scratch
ЧислоЦелые и дробные5, 3.14, -10Автоматически, если ввести число
СтрокаТекст"Привет", "Level 2"Всё в кавычках — или через спросить
БулевоДа/Нет, Истина/Ложьистина, ложьРезультат условий: <5 > 3>истина

⚠️ Scratch не требует указывать тип вручную — он определяет его по значению. Но важно помнить:

  • "5" + "3""53" (склеивание строк)
  • (5) + (3)8 (сложение чисел)
    — разница в скобках и кавычках!

7.4. Пример: «Суперсила на время»

Герой подбирает бустер → сила = истина на 5 секунд:

[Когда касается [бустер] и <не <сила>>]
установить [сила v] в (истина)
надеть эффект [цвет] на (100)
воспроизвести звук [усиление]
ждать (5) сек.
установить [сила v] в (ложь)
сбросить эффекты

А в атаке:

если <(сила) = истина> то
воспроизвести звук [взрыв]
сказать [БАМ!] в течение (0.3) сек.
иначе
сказать [Тук.]
конец

7.5. Задания

➡️ Задание 1. «Таймер уровня»

  • Переменная время = 30
  • всегда:
    • ждать (1) сек.
    • изменить время на (-1)
    • если время = 0 → игра окончена

➡️ Задание 2. «Три жизни — три сердца»

  • Три спрайта-сердца.
  • При потере жизни: спрятать последнее видимое сердце.
  • Используйте переменную жизни, а не просто спрятать себя.

➡️ Задание 3. «Имя игрока»

  • При старте: спросить [Как тебя зовут?] и ждать
  • установить [имя v] в (ответ)
  • Потом: сказать (объединить [Привет, ] и (имя))

➡️ Задание 4. «Режим отладки»

  • Переменная режим_отладки = ложь
  • При нажатии D: переключить её (установить в <не <режим_отладки>>)
  • Если режим_отладки = истина, показывать x, y, направление на сцене.

🎲 Часть 8. Случайные числа и диапазоны — элемент непредсказуемости

8.1. Зачем нужна случайность?

В реальной жизни многое происходит случайно:

  • Где упадёт монетка?
  • Какой вопрос выпадет в викторине?
  • Где появится враг?

Без случайности игра быстро станет скучной — всё предсказуемо.

8.2. Блок случайное от () до ()

Находится в категории «Операторы». Примеры:

  • случайное от (1) до (6) — бросок кубика
  • случайное от (-200) до (200) — позиция по X
  • случайное от (1) до (100) < 20 — 20% шанс события (ложь/истина)

8.3. Пример: «Появление врагов»

[Когда 🟢 нажат]
всегда
ждать (случайное от (2) до (5)) сек.
создать клон от [враг v]
конец

[Когда я начинаю как клон]
перейти в x: (240) y: (случайное от (-150) до (150))
показать
повторять пока <x > (-250)>
изменить x на (-3)
ждать (0.02) сек.
конец
удалить этого клона

Здесь:

  • Враги появляются через 2–5 секунд (не ритмично!)
  • Каждый — на случайной высоте
  • Движутся слева направо и исчезают за краем

8.4. Как создать «5% шанс»?

если <(случайное от (1) до (100)) < (6)> то
сказать [Редкий предмет!]
показать спрайт [бриллиант]
конец

Почему < 6? Потому что 1, 2, 3, 4, 5 — это 5 значений из 100 → 5%.

8.5. Задания

➡️ Задание 1. «Кубик-решатель»

  • При нажатии на спрайт-кубик:
    • установить [выпало v] в (случайное от (1) до (6))
    • включить костюм (выпало) (если костюмы названы 1, 26)

➡️ Задание 2. «Дождь из звёзд»

  • Спрайт-звезда создаёт клон каждые 0.1 сек.
  • Клон:
    • перейти в x: (случайное -240…240), y: (180)
    • падает вниз, ускоряясь
    • удаляется при касании низа

➡️ Задание 3. «Случайный диалог»
Кот при клике говорит одно из трёх:

установить [вариант v] в (случайное от (1) до (3))
если <(вариант) = (1)> то сказать [Мяу!]
если <(вариант) = (2)> то сказать [Хочу есть!]
если <(вариант) = (3)> то сказать [Погладь меня!]

➡️ Задание 4. «Генератор лабиринта (упрощённый)»
5 дверей. Одна ведёт к победе, остальные — к ловушке.

  • При старте: установить [правильная_дверь v] в (случайное от (1) до (5))
  • При касании двери N:
    • если N = правильная_дверь → победа
    • иначе → ловушка

🧬 Часть 9. Клоны — копии, которые думают сами

9.1. Что такое клон?

Клон — это точная копия спрайта в момент создания, но с собственной «жизнью»:

  • Может быть в другом месте
  • Может иметь свои переменные (если использовать локальные)
  • Выполняет скрипт Когда я начинаю как клон независимо от других

Это как клонирование ниндзя: все выглядят одинаково, но каждый бежит по своей тропе.

9.2. Как создать клон?

  1. У спрайта должен быть скрипт:
    [Когда я начинаю как клон]
    ... // что делать клону
    удалить этого клона // обязательно в конце!
  2. Где-то (например, по таймеру):
    создать клон от [этот спрайт v]

❗ Без удалить этого клона клоны будут накапливаться — и игра замедлится.

9.3. Индивидуальные свойства клонов

Хотя клоны создаются от одного спрайта, каждый может «помнить» своё:

[Когда я начинаю как клон]
установить [скорость v] в (случайное от (2) до (6))
установить [урон v] в (округлить ((скорость) / 2))
показать
...

Здесь у каждого клона — своя скорость и урон, даже если переменные локальные (только для спрайта).

9.4. Пример: «Шутер с пулями»

У героя:

[Когда нажата клавиша [пробел]]
создать клон от [пуля v]

У пули:

[Когда я начинаю как клон]
перейти в x: (x героя) y: (y героя)
показать
повторять пока <не <касается края? или касается врага?>>
изменить x на (10)
ждать (0.02) сек.
конец
удалить этого клона

Так можно стрелять много раз — каждая пуля живёт своей жизнью.

9.5. Задания

➡️ Задание 1. «Дождик»
Как в части 8, но с клона́ми:

  • Облако создаёт клон капли каждые 0.2 сек.
  • Капля падает, удаляется у низа.

➡️ Задание 2. «Рой пчёл»

  • Пчела создаёт 5 клонов вокруг себя.
  • Каждый клон:
    • случайное направление
    • движется 2 секунды → удаляется.

➡️ Задание 3. «Аптечки-самородки»

  • Иногда при убийстве врага (10% шанс) появляется аптечка (клон).
  • Герой, коснувшись её, восстанавливает 1 жизнь и удаляет клон.

➡️ Задание 4. «Волна врагов»

  • При старте уровня:
    повторить (10)
    ждать (0.5) сек.
    создать клон от [враг v]
    конец
  • Каждый враг — с разной скоростью и здоровьем (локальные переменные).

🔤 Часть 10. Операторы строк — когда слова тоже данные

10.1. Строки — не просто буквы

В Scratch можно не только хранить текст, но и работать с ним:

  • Склеивать
  • Измерять длину
  • Искать части
  • Сравнивать

10.2. Основные строковые операции

БлокЧто делаетПример
объединить [Привет, ] и (имя)Склеивает строки"Привет, Алиса"
длина строки (имя)Считает символы"Кот" → 3
<(имя) = [Кот]>Проверка на точное совпадениеУчитывает регистр и пробелы!
буква (1) от (имя)Берёт первую букву"Алиса" → "А"

💡 "кот""Кот" — Scratch чувствителен к заглавным буквам.

10.3. Пример: «Пароль с подсказкой»

спросить [Введите пароль (3 буквы, начинается с "С")] и ждать
если <(длина строки (ответ)) = (3)> и <(буква (1) от (ответ)) = [С]> то
сказать [Подходит!]
иначе
сказать [Подсказка: 3 буквы, первая — С]
конец

10.4. Задания

➡️ Задание 1. «Приветствие по имени»

  • Спросить имя
  • Если имя начинается с «А», сказать «Алё, (имя)!»
  • Иначе — «Привет, (имя)!»

➡️ Задание 2. «Секретное слово»

  • Загадано слово "код"
  • Игрок вводит слово → программа считает, сколько букв совпало по позиции:
    установить [совпадений v] в (0)
    если <(буква (1) от (ответ)) = (буква (1) от [код])> то изменить [совпадений v] на (1)
    ... и так для позиций 2 и 3
    сказать (объединить [Совпало: ] и (совпадений))

➡️ Задание 3. «Имя-палиндром»
Проверить, читается ли имя одинаково слева и справа:

  • "Анна", "топот" — да
  • "Макс" — нет
    (Подсказка: буква (1) и буква (длина строки) и т.д.)

➡️ Задание 4. «Сокращение до инициалов»
Ввести "Тимур Владиславович" → вывести "Т.В."
(Можно упростить: считать, что ввод — два слова, разделённых пробелом)


🗨 Часть 11. Чат-бот — ваш первый ИИ (почти!)

11.1. Как устроен простой бот?

Он не «думает», а реагирует на ключевые слова по заранее написанным правилам.

Алгоритм:

  1. Спросить что-то
  2. Ждать ответа
  3. Проверить ответ:
    • совпадает с да? → ответить «Отлично!»
    • совпадает с нет? → «Жаль…»
    • иначе → «Не понял. Повтори?»

11.2. Пример: «Друг-помощник»

[Когда 🟢 нажат]
сказать [Привет! Я — Бот. О чём поговорим?] в течение (2) сек.
спросить [Можно задать вопрос?] и ждать

если <(ответ) содержит [погода]> то
сказать [Сегодня солнечно!]
иначе
если <(ответ) содержит [имя]> то
сказать [Меня зовут Бот-2025!]
иначе
сказать [Интересно! Расскажи ещё.]
конец
конец

🔍 Блок содержит — из расширения «Текстовые операции» (нужно включить внизу палитры блоков).

11.3. Как добавить память?

Используем переменную настроение:

  • Если ответ спасибоустановить [настроение v] в [хорошее]
  • Потом:
    если <(настроение) = [хорошее]> то
    сказать [Рад был помочь!]
    конец

11.4. Задания

➡️ Задание 1. «Угадай число»

  • Бот загадывает случайное от (1) до (10)
  • Игрок угадывает → бот говорит «Больше», «Меньше», «Угадал!»
  • Используйте цикл повторять пока <не угадано>

➡️ Задание 2. «Школьный помощник»

  • Бот отвечает на:
    • расписание → «Пн: математика, русский…»
    • домашка → «Стр. 45, №3,5»
  • Используйте если <ответ содержит [расписание]>

➡️ Задание 3. «Бот-психолог»

  • На грустно → «Могу рассказать анекдот»
  • На анекдот → рассказать случайный из трёх
  • На спасибо → «Обращайся!» и повысить настроение

➡️ Задание 4. «Диалог с сохранением»

  • При старте: если имя ≠ "", сказать «Привет, (имя)!»
  • Иначе — спросить и записать.
    (Так бот «помнит» вас между запусками — если проект сохранён.)

📋 Часть 12. Списки — когда одного ящика мало

12.1. Что такое список?

Представьте столбик в тетради:

1. Яблоко  
2. Хлеб
3. Молоко

Это список покупок. В программировании — список.

В Scratch:

  • Список может хранить числа, строки, даже результаты условий
  • Каждый элемент имеет номер (индекс): 1, 2, 3…
  • Можно добавлять, удалять, заменять, искать

12.2. Основные операции

ДействиеБлок
Создатьсоздать список [инвентарь]
Добавить в конецдобавить [ключ] в [инвентарь v]
Вставить на место 2вставить [факел] в (2) в [инвентарь v]
Удалить №3удалить (3) из [инвентарь v]
Длина списка(длина списка [инвентарь v])
Перебордля каждого [предмет] в [инвентарь v]сказать (предмет)

12.3. Пример: «Инвентарь и проверка»

[Когда касается [ключ]]
добавить [ключ] в [инвентарь v]
сказать [Ключ добавлен!] в течение (1) сек.

[Когда касается [дверь]]
если <[инвентарь v] содержит [ключ]> то
сказать [Открыто!]
удалить [ключ] из [инвентарь v]
иначе
сказать [Нужен ключ!]
конец

12.4. Задания

➡️ Задание 1. «Список друзей»

  • Команда /add Кот → добавляет "Кот" в список
  • /list → бот перечисляет всех друзей
  • /del Кот → удаляет из списка
    (Используйте спросить, содержит, удалить (номер))

➡️ Задание 2. «Рекорды»

  • При окончании игры:
    • если очки > последнего в списке [рекорды] или длина < 3:
      • вставить очки в нужное место (можно просто в конец и потом сортировать визуально)
  • Показать топ-3

➡️ Задание 3. «Чекбоксы»
Список [задания]:

  • "Покормить кота"
  • "Сделать уроки"
    При клике на спрайт-галочку:
  • заменить (#) в [задания v] на (объединить [✓ ] и (элемент))

➡️ Задание 4. «Случайный выбор из списка»
Список [цитаты] с 5 фразами.
При нажатии кнопки:

установить [n v] в (случайное от (1) до (длина списка [цитаты v]))
сказать (элемент (n) из [цитаты v])

✏️ Часть 13. Модуль «Перо» — рисуем программно

13.1. Что даёт модуль «Перо»?

Без модуля спрайты только двигаются. С модулем — они могут оставлять след, как карандаш на бумаге. Это открывает мир:

  • Графиков и диаграмм
  • Рисовалок и песочниц
  • Визуализации алгоритмов (например, сортировки)
  • Следов от пуль, трасс в гонках, линий телепортации

13.2. Основные блоки

ГруппаБлокНазначение
Управлениеопустить перо / поднять пероВключить/выключить рисование
Цветустановить цвет пера в (75)0—200 (как эффект «цвет»)
Толщинаустановить размер пера в (2)Толщина линии в пикселях
ЗаливказаполнитьЗакрасить замкнутую область текущим цветом
ОчисткаочиститьСтереть ВСЁ, что нарисовано пером на сцене

⚠️ Важно:

  • «Перо» рисует на сцене, а не на спрайте.
  • Рисунок остаётся, даже если спрайт исчезает.
  • очистить убирает только то, что нарисовано пером — не спрайты и фон.

13.3. Пример 1: «Художник-робот»

[Когда 🟢 нажат]
установить размер пера в (3)
установить цвет пера в (120)
опустить перо

всегда
идти на (5) шагов
если <нажата клавиша [влево]?> то
повернуть влево на (15) градусов
конец
если <нажата клавиша [вправо]?> то
повернуть вправо на (15) градусов
конец
конец

Теперь при управлении стрелками робот рисует траекторию — как в игре «Лабиринт с памятью».

13.4. Пример 2: «Гистограмма очков»

Допустим, у нас есть 4 игрока, и их очки хранятся в списке [очки]: [12, 7, 20, 15].

[Когда 🟢 нажат]
очистить
установить цвет пера в (90)
установить x в (-150)

для каждого [значение] в [очки v]
опустить перо
изменить y на ((значение) * 2) // масштаб: 1 очко = 2 пикселя
изменить x на (20)
изменить y на ((-значение) * 2)
поднять перо
изменить x на (10) // промежуток
конец

Получаем столбчатую диаграмму — без спрайтов, только линии.

13.5. Задания

➡️ Задание 1. «Спираль»

  • установить x/y в (0)
  • опустить перо
  • повторить (100):
    • идти на (i) шагов // i = номер повтора
    • повернуть направо на (20)
    • изменить размер пера на (0.1) (для эффекта затухания)

➡️ Задание 2. «Линия до клика»

  • При клике мышкой:
    • перейти в x: (x мышки) y: (y мышки)
    • поднять перо
    • перейти в (0, 0)
    • опустить перо
    • перейти в x: (x мышки) y: (y мышки)
      → Рисует линию от центра до точки клика.

➡️ Задание 3. «След за героем»

  • Герой движется стрелками.
  • Каждые 0.1 сек:
    • поднять перо
    • перейти к [герой v]
    • опустить перо
    • идти на (1) шаг (чтобы оставить точку)
      → Тонкий пунктирный след.

➡️ Задание 4. «Заставка: имя волной»

  • Для каждой буквы имени:
    • перейти в x: (x0 + i*20), y: (sin(i) * 30)
    • опустить перо
    • идти на (1) шаг
      → Имя изгибается, как волна (можно использовать sin из операторов при включённом расширении «Математика» или аппроксимировать таблицей).

🎵 Часть 14. Модуль «Музыка» — превращаем Scratch в синтезатор

14.1. Что можно делать?

Scratch позволяет не просто воспроизводить звуки, но и создавать музыку нота за нотой, как на пианино.

Модуль добавляет новые блоки:

  • играть ноту (60) в течение (0.5) долей
  • установить темп в (60) ударов в минуту
  • установить инструмент в (1) (1–20: фортепиано, скрипка, барабаны и др.)

🎼 Ноты кодируются числами:

  • До первой октавы = 60
  • Ре = 62, Ми = 64, Фа = 65, Соль = 67, Ля = 69, Си = 71
  • До второй = 72
    — шаг = 2 для целых тонов, 1 для полутонов.

14.2. Пример: «Мелодия „В лесу родилась ёлочка“»

установить инструмент в (1)  // фортепиано
установить темп в (120)

играть ноту (67) в течение (0.5) долей // соль
играть ноту (67) в течение (0.5) долей
играть ноту (69) в течение (1) долей // ля
играть ноту (67) в течение (0.5) долей
играть ноту (72) в течение (0.5) долей // до
играть ноту (71) в течение (1) долей // си

Можно записать всю мелодию — и получить музыкальную открытку.

14.3. Интерактивное пианино

Создайте 8 спрайтов-клавиш (белых).
У каждой — скрипт:

[Когда щёлкнут по этому спрайту]
установить эффект [яркость] в (50)
играть ноту (60 + (номер * 2)) в течение (0.4) долей
ждать (0.1) сек.
установить эффект [яркость] в (0)

Где номер — от 0 до 7 (можно задать через переменную при клонировании или отдельно для каждой клавиши).

Добавьте чёрные клавиши со смещением +1 — и будет настоящая октава.

14.4. Задания

➡️ Задание 1. «Азбука Морзе»

  • . = нота 60, 0.2 доли
  • - = нота 60, 0.6 долей
  • Пауза = 0.2 сек.
    Напишите программу, которая переводит букву "С""... - - - ..." в звук.

➡️ Задание 2. «Генератор ритма»

  • 4 барабана (инструменты 12–15)
  • Случайно включать каждый на долю в такте:
    повторить (4)
    если <случайное 1–100 < 60> то играть ноту (36) (бочка) ...
    ждать (0.25) доли
    конец

➡️ Задание 3. «Музыка от очков»
Чем больше очков — тем выше нота:

играть ноту ((60) + (минимум ((очки) / 5) (40))) в течение (0.3) долей

➡️ Задание 4. «Хор»
Три спрайта поют разные партии одновременно (три параллельных Когда 🟢 нажат), каждая — свою мелодию. Получается гармония.


🧱 Часть 15. Свои блоки — как создавать «функции»

15.1. Зачем нужны свои блоки?

Представьте, что вы часто пишете:

«Повернуть направо на 90°, сделать 100 шагов, повернуть на 90°, сделать 100 шагов…»

Это утомительно. Лучше один раз определить:

«Нарисовать сторону квадрата»

— и использовать эту команду как готовый блок.

В Scratch это называется «Создать блок» (в категории «Ещё»«Создать блок»).

15.2. Как создать блок?

  1. Нажмите «Создать блок»
  2. Название: нарисовать_квадрат
  3. «Добавить входные данные»размер (число), цвет (число)
  4. Нажмите «ОК» → появится заготовка:
    определить нарисовать_квадрат (размер) (цвет)
  5. Внутрь добавьте код:
    установить цвет пера в (цвет)
    опустить перо
    повторить (4)
    идти на (размер) шагов
    повернуть направо на (90)
    конец
    поднять перо

Теперь в палитре — новый блок нарисовать_квадрат (100) (120), как будто он всегда был.

15.3. Пример: «Анимация прыжка» как блок

определить прыжок (высота)
установить [прыгать v] в (высота)
повторять пока <(прыгать) > (-высота)>
изменить y на (прыгать)
изменить [прыгать v] на (-1)
ждать (0.02) сек.
конец
установить y в (пол) // возврат на землю

Теперь герой прыгает одной командой:

[Когда нажата [пробел]]
прыжок (15)

15.4. Задания

➡️ Задание 1. «Блок „взрыв“»

  • Принимает x, y, мощность
  • Создаёт 8 клонов-искр, летящих во все стороны
  • Каждый искра:
    • перейти в x/y
    • повернуть в случайное направление
    • повторить (мощность/5) раз: идти на 2, уменьшить размер

➡️ Задание 2. «Блок „проверить_победу“»

  • Проверяет: очки >= 10 и имя ≠ ""
  • Если да → остановить все, показать надпись
  • Вызывается после каждого сбора монеты.

➡️ Задание 3. «Блок „появиться_случайно“»

  • У спрайта:
    определить появиться_случайно
    перейти в x: (случайное -200…200) y: (случайное -150…150)
    показать
  • Используется для врагов, аптечек и т.д.

➡️ Задание 4. «Блок с возвратом» (через переменную)
Scratch не возвращает значения напрямую, но можно так:

определить расстояние_до_мышки
установить [расстояние v] в (расстояние до [мышка v])

— и использовать (расстояние) дальше.


📊 Часть 16. Mermaid-схема: как устроена игра на Scratch

Чтобы понять структуру проекта, полезно нарисовать блок-схему. В книге можно вставить схему в формате Mermaid — её легко генерировать и встраивать в Markdown.

Вот обобщённая схема типичного Scratch-проекта:

💡 Эту схему можно показать детям как «карту проекта» перед началом кодирования. Она помогает спланировать логику, не погружаясь в блоки.


🛠 Часть 17. Проектирование и отладка — как не запутаться

17.1. Планирование перед кодом

Перед тем как брать блоки, задайте вопросы:

  1. Какая цель игры? («Собрать 10 монет, не касаясь врагов»)
  2. Кто участвует? (герой, монеты, враги, дверь)
  3. Какие правила?
    • Смерть при касании врага
    • Победа при 10 монетах
  4. Какие переменные нужны? (очки, жизни, игра_активна)
  5. Какие события? (🟢, пробел, получено сообщение [старт])

Можно нарисовать эскиз на бумаге — даже от руки.

17.2. Отладка: как искать ошибки

СимптомВозможная причинаКак проверить
Герой не двигаетсяНет всегда, или нет ждатьПосмотреть: есть ли бесконечный цикл?
Монета не исчезаетЗабыли спрятатьПроверить скрипт монеты: есть ли реакция на касание?
Очки не растутПеременная не глобальная / опечатка в названииКликнуть по (очки) — показывает ли текущее значение?
Клоны не удаляютсяНет удалить этого клонаОткрыть монитор клона: их слишком много?

17.3. Советы по отладке

  • Включите показ переменных на сцене — следите за изменениями в реальном времени.
  • Добавьте сказать на 0.5 сек в ключевые места: «Проверяю касание», «Добавляю очко» — чтобы видеть, доходит ли код до этого места.
  • Тестируйте по частям: сначала движение, потом сбор монет, потом враги.
  • Комментарии: в Scratch есть блок «комментарий» (серый, без разъёмов) — пишите пояснения прямо в коде.

☁️ Часть 18. Облачные переменные и онлайн-возможности

18.1. Что такое облачная переменная?

Обычная переменная сохраняется только на этом компьютере.
Облачная — сохраняется на серверах Scratch и видна всем, кто открывает проект.

Примеры использования:

  • 🏆 Лидерборд (топ-3 игроков)
  • 🌍 Мультиплеер (очень простой): один меняет ход_игрока, другой реагирует
  • 📝 Голосование: каждый клик — +1 к варианту

18.2. Как создать?

  1. Создайте переменную
  2. Поставьте ✅ «Облачная переменная»
  3. Готово — рядом появится значок ☁️

⚠️ Ограничения:

  • Только числа (строки и списки — нельзя)
  • Медленнее обычных (обновление с задержкой ~1 сек)
  • Защита от спама: нельзя менять чаще ~1 раза в секунду

18.3. Пример: «Онлайн-счётчик посетителей»

[Когда 🟢 нажат]
изменить [посетители ☁ v] на (1)
сказать (объединить [Вы — посетитель № ] и (посетители)) в течение (2) сек.

Первый запуск: 1, второй — 2 и т.д., даже с другого компьютера.

18.4. Облачные списки?

Scratch не поддерживает облачные списки. Но можно имитировать:

  • рекорд1 ☁, рекорд2 ☁, рекорд3 ☁
  • При новом рекорде:
    если <(очки) > (рекорд3 ☁)> то
    установить [рекорд3 ☁ v] в (очки)
    если <(очки) > (рекорд2 ☁)> то
    установить [рекорд2 ☁ v] в (рекорд3 ☁)
    ... и т.д.
    конец
    конец

🔮 Более гибкие решения — в других средах: Snap!, Python + Flask, но это — следующий уровень.


🎯 Часть 19. Финальный проект: «Космический рейнджер»

19.1. Описание

Игра в жанре аркада:

  • Герой (корабль) летит вверх
  • Уворачивается от астероидов
  • Стреляет по НЛО
  • Собирает кристаллы энергии
  • Цель: набрать 50 очков и пройти уровень

19.2. Этапы реализации

1. Подготовка

  • Фон: космос
  • Спрайты: корабль, астероид, нло, кристалл, взрыв
  • Переменные: очки, жизни, боезапас
  • Облачная: рекорд ☁

2. Корабль

  • Движение: стрелки влево/вправо
  • Выстрел: пробел → создать клон [пуля]
  • Проверка касаний: астероид (–1 жизнь), кристалл (+5 очков)

3. Астероиды

  • Появляются сверху через случайное 1–3 сек
  • Падают со скоростью 3–6 (случайно)
  • При касании пули: создать клон [взрыв], +1 очко, удалить

4. НЛО

  • Летает зигзагом вверху
  • Стреляет раз в 2 сек
  • При убийстве: +10 очков, +1 к жизни

5. Победа/Поражение

  • Если очки >= 50:
    • отправить сообщение [победа]
    • Все враги останавливаются
    • Корабль летит к звезде
  • Если жизни = 0:
    • сказать [Миссия провалена.]
    • остановить все

6. Лидерборд

  • При победе:
    если <(очки) > (рекорд ☁)> то
    установить [рекорд ☁ v] в (очки)
    сказать [НОВЫЙ РЕКОРД!]
    конец

📎 Приложение. Система координат Scratch — наглядно

          y = +180



x = -240 ◄────┼────► x = +240



y = -180
  • Центр сцены: (0, 0)
  • Ширина сцены: 480 пикселей (-240+240)
  • Высота сцены: 360 пикселей (-180+180)
  • Направление по умолчанию: 90° — вправо
    • — вверх
    • 180° — вниз
    • -90° или 270° — влево

Как быстро переместиться в угол?

перейти в x: (240) y: (180)   // правый верхний
перейти в x: (-240) y: (-180) // левый нижний

📏 Практический приём: включите сетку и координаты в редакторе (меню «См.» → «Сетка», «См. координаты мыши»).