9.05. Scratch
Визуальный язык программирования Scratch
Как он работает и как в нём зарегистрироваться
События и сообщения
Внешний вид, анимации и звуки
Условия и условный оператор
Циклы и функции
Переменные и типы данных
Случайные числа и диапазоны
Клоны
Добавить mermaid схему
Добавить задачи
Представьте, что вы хотите научиться ездить на велосипеде. Вам не дают сразу гоночную машину или космический корабль — вы садитесь на трёхколёсный велосипед с боковыми колёсиками. Он не самый быстрый, но на нём можно понять: как крутить педали, как держать равновесие, как поворачивать.
Scratch — это велосипед для программистов.
Это не «игрушка» — это полноценная среда программирования, разработанная в MIT (Массачусетском технологическом институте), где учат самых разных людей — от первоклассников до исследователей. В Scratch вы не пишете текст на языке, который можно ошибиться в одной букве и ничего не заработает. Вместо этого вы собираете программы из цветных блоков, как из пазлов. Блоки подходят друг к другу только тогда, когда это логично — например, к блоку «если …» можно подключить только условие, а не звук. Это называется визуальным программированием.
И да — на Scratch можно создать настоящую игру, мультфильм, музыкальный инструмент, тест или даже простого чат-бота. Всё, что вы сейчас держите в руках (планшет, телефон, компьютер), тоже когда-то начиналось с таких «конструкторов».
🔧 Часть 1. Как устроен Scratch и как в него войти
1.1. Что такое Scratch?
Scratch — это веб-платформа: чтобы начать, достаточно открыть браузер и перейти на сайт https://scratch.mit.edu. Там вы увидите большую зелёную кнопку «Создать» — она и откроет редактор.
Редактор разделён на несколько областей:
- Сцена — это «экран» вашей программы. Тут всё происходит: персонажи двигаются, появляются вспышки, играют звуки.
- Спрайты — это персонажи, предметы, кнопки. У каждой игры может быть один или сто спрайтов.
- Область кода — сюда вы перетаскиваете блоки, чтобы составить программу.
- Палитра блоков — «ящик с деталями», разделённый по темам: движение, внешний вид, звук, события и т.д.
- Список спрайтов — справа внизу: тут вы выбираете, кому из героев вы сейчас пишете инструкции.
💡 Важно: Scratch работает в браузере, и ничего устанавливать не нужно. Но чтобы сохранять свои проекты, нужно зарегистрироваться.
1.2. Как зарегистрироваться (безопасно и бесплатно)
- Нажмите «Присоединиться к Scratch» в правом верхнем углу.
- Придумайте имя пользователя — оно будет видно другим, но не показывает ваше настоящее имя. Выбирайте что-то вроде «КосмоКот_2025» или «Робо_Алиса».
- Укажите дату рождения — это нужно только для того, чтобы платформа понимала, что вы моложе 13 лет (тогда включаются особые правила защиты).
- Выберите пароль — пусть он будет надёжным (например,
Пароль7!Звезда). - Подтвердите почту: на неё придёт письмо с ссылкой. Перейдите по ней — и готово!
✅ Безопасность: Scratch запрещает публиковать личные данные (номера телефонов, адреса школы, фото с лицом). Всё, что вы опубликуете, проходят модераторы. Можно работать только в личном режиме — тогда никто, кроме вас, не увидит проекты.
⚡ Часть 2. События и сообщения — как герои «разговаривают»
2.1. Что такое событие?
Представьте, что вы идёте по улице и внезапно слышите: «Тимур, подожди!» — вы останавливаетесь. Это событие (вас окликнули) → реакция (вы остановились).
В Scratch программы тоже работают по принципу:
Когда что-то произошло → сделать что-то.
Эти «что-то произошло» и есть события.
2.2. Основные события в Scratch
| Блок | Что значит | Пример использования |
|---|---|---|
Когда 🟢 нажат | При нажатии на зелёный флажок в углу сцены | Запуск всей игры |
Когда нажата клавиша [пробел] | После нажатия клавиши | Прыжок, выстрел |
Когда получил сообщение [старт] | Когда другой спрайт отправил это сообщение | Запуск врагов после таймера |
2.3. Как работают сообщения?
Сообщения — это способ организовать порядок действий между спрайтами, даже если они «не видят друг друга».
Например:
Главный герой приходит к двери → отправляет сообщение
«открыть дверь»→ дверь слышит это сообщение и начинает анимацию открытия.
Это важнее, чем кажется: если бы каждый спрайт сам решал, в какой момент начинать действие, игра быстро стала бы хаотичной.
2.4. Пример: «Старт игры по команде»
Цель: при нажатии на зелёный флаг герой ждёт 2 секунды, затем кричит «Поехали!» и отправляет сигнал — и только тогда враги начинают двигаться.
Шаги:
-
У героя:
[Когда 🟢 нажат]
ждать (2) сек.
сказать [Поехали!] в течение (1) сек.
отправить сообщение [старт] -
У врага:
[Когда получил сообщение [старт]]
повторять
изменить 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:
- Вкладка «Данные» → «Создать переменную»
- Название:
очки - Выбор:
- Для всех спрайтов (глобальная) — если всем нужно знать счёт
- Только для этого спрайта (локальная) — например,
здоровьеу каждого врага своё
После создания появляются блоки:
установить [очки 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,2…6)
➡️ Задание 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. Как создать клон?
- У спрайта должен быть скрипт:
[Когда я начинаю как клон]
... // что делать клону
удалить этого клона // обязательно в конце! - Где-то (например, по таймеру):
создать клон от [этот спрайт 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. Как устроен простой бот?
Он не «думает», а реагирует на ключевые слова по заранее написанным правилам.
Алгоритм:
- Спросить что-то
- Ждать ответа
- Проверить ответ:
- совпадает с
да? → ответить «Отлично!» - совпадает с
нет? → «Жаль…» - иначе → «Не понял. Повтори?»
- совпадает с
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. Как создать блок?
- Нажмите «Создать блок»
- Название:
нарисовать_квадрат - ✅ «Добавить входные данные» →
размер(число),цвет(число) - Нажмите «ОК» → появится заготовка:
определить нарисовать_квадрат (размер) (цвет) - Внутрь добавьте код:
установить цвет пера в (цвет)
опустить перо
повторить (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. Планирование перед кодом
Перед тем как брать блоки, задайте вопросы:
- Какая цель игры? («Собрать 10 монет, не касаясь врагов»)
- Кто участвует? (герой, монеты, враги, дверь)
- Какие правила?
- Смерть при касании врага
- Победа при 10 монетах
- Какие переменные нужны? (
очки,жизни,игра_активна) - Какие события? (
🟢,пробел,получено сообщение [старт])
Можно нарисовать эскиз на бумаге — даже от руки.
17.2. Отладка: как искать ошибки
| Симптом | Возможная причина | Как проверить |
|---|---|---|
| Герой не двигается | Нет всегда, или нет ждать | Посмотреть: есть ли бесконечный цикл? |
| Монета не исчезает | Забыли спрятать | Проверить скрипт монеты: есть ли реакция на касание? |
| Очки не растут | Переменная не глобальная / опечатка в названии | Кликнуть по (очки) — показывает ли текущее значение? |
| Клоны не удаляются | Нет удалить этого клона | Открыть монитор клона: их слишком много? |
17.3. Советы по отладке
- Включите показ переменных на сцене — следите за изменениями в реальном времени.
- Добавьте
сказатьна 0.5 сек в ключевые места: «Проверяю касание», «Добавляю очко» — чтобы видеть, доходит ли код до этого места. - Тестируйте по частям: сначала движение, потом сбор монет, потом враги.
- Комментарии: в Scratch есть блок «комментарий» (серый, без разъёмов) — пишите пояснения прямо в коде.
☁️ Часть 18. Облачные переменные и онлайн-возможности
18.1. Что такое облачная переменная?
Обычная переменная сохраняется только на этом компьютере.
Облачная — сохраняется на серверах Scratch и видна всем, кто открывает проект.
Примеры использования:
- 🏆 Лидерборд (топ-3 игроков)
- 🌍 Мультиплеер (очень простой): один меняет
ход_игрока, другой реагирует - 📝 Голосование: каждый клик — +1 к варианту
18.2. Как создать?
- Создайте переменную
- Поставьте ✅ «Облачная переменная»
- Готово — рядом появится значок ☁️
⚠️ Ограничения:
- Только числа (строки и списки — нельзя)
- Медленнее обычных (обновление с задержкой ~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°— вправо0°— вверх180°— вниз-90°или270°— влево
Как быстро переместиться в угол?
перейти в x: (240) y: (180) // правый верхний
перейти в x: (-240) y: (-180) // левый нижний
📏 Практический приём: включите сетку и координаты в редакторе (меню «См.» → «Сетка», «См. координаты мыши»).