Scratch — это визуально-ориентированный язык программирования для детей. Существует мнение, что это детский язык для того, чтобы просто поиграть «в программирование» и ничего путного (серьезного) из него сделать не получится. Когда я только начал вести занятия для детей на Scratch, мне как человеку с двумя высшими техническими образованиями, казалось также.
Однако спустя время мне пришлось поменять свое мнение. Оказалось, что даже в этом детском языке программирования скрыты фишки, которые могут быть серьезно использованы даже при обучении профессиональному программированию. Хочу поделиться с вами моими открытиями.
Клонирование и переменные в Scratch
Моему ученику нравилась игра — «Зомби против растений». И ему было интересно самому запрограммировать её. Давайте вспомним как данная игра работает? С правой стороны у нас есть шеренга растений, которая расстреливает приближающихся зомби.
Есть множество решений данной задачи, но на мой взгляд более элегантное решение — задействовать минимально возможное количество спрайтов, т.е. использовать клонирование.
Уроки Scratch / Что такое переменные для чего они нужны и как с ними работать
Как сделать так, чтобы у каждого отдельного клона был собственный уровень жизни? Что выбрать переменные или списки? Сделали попытку использовать списки, но после более детальной проработки поняли, что данная структура данных не помогает решить проблему.
У переменных и списков, в Scratch есть 2 типа видимости для каждого типа данных — это «для всех спрайтов» или «только для этого спрайта». Пришлось проверять область видимости. Начали мы с переменных.
Дойдя до рабочего варианта переменной с областью видимостью «только для этого спрайта». В классических языках программирования такой тип видимости называют — локальным или приватным в зависимости от контекста.
Оказывается, что если эта переменная с данной областью видимости используется в клоне, то в клоне создается экземпляр переменной, принадлежащий конкретному клону и который используется для внутренних вычислений/работы клона. В нашем случае, у каждого клона есть своя «жизнь». Если стало интересно, то советую обратиться к справочнику. А вот картинка, которая показывает, как спрайты или клоны работают с переменными разных типов видимости.
Переменная с областью видимости «для всех спрайтов» (рисунок слева) — одна на всех. Кстати, здесь вы можете с детьми посмотреть работу с критическими секциями и что такое гонка за ресурс. А если область видимости переменной — «только для этого спрайта», то у спрайта и у его клонов появляется собственная переменная с тем же именем, с которой они работают (рисунок с права). И клоны не имеют доступа к переменной оригинала и переменной другого клона.
Это стало неожиданным и приятным открытием свойств Scratch для создания подобных алгоритмов.
ВАЖНО: Переменная — это очень мощный инструмент настоящего программиста, поэтому я сразу учу детей правильному именованию переменных, так как этот навык поможет им в проектах разной сложности.
Уроки Scratch / Переменные простыми словами, для чего они нужны, разбираемся еще раз
Имена объектов как их идентификаторы
ВАЖНО: все переменные с зоной видимостью «только для этого спрайта».
Презентация на тему Переменные в Scratch
В Скретче можно создать свои собственные репортеры для переменных величин, например, для очков игрока, уровня сложности игры, ее продолжительности.
Слайды и текст этой презентации
Слайд 1Переменные в Scratch
Слайд 2В Скретче можно создать свои собственные репортеры для переменных величин,
например, для очков игрока, уровня сложности игры, ее продолжительности.
Слайд 3Репортеры, созданные самим программистом, называют переменными и списками. У них
есть всего два отличия от системных репортеров:
их значения можно произвольно
изменять
их можно удалять из проекта.
Слайд 4Переменная (англ. variable)- это место в оперативной памяти компьютера, содержащее
изменяемое значение.
Программа (скрипт) как бы арендует это место у
компьютера на период своей работы, чтобы в нужный момент записывать туда новые значения, а также брать их копии для различных математических, строковых и логических операций.
Слайд 5Создание переменной
Для создания переменных и списков предназначена оранжевая категория команд
– переменные (Данные).
Слайд 6Имена переменных
Имя переменной также, как имя спрайта, костюма или фона,
может состоять из букв, цифр, знака подчеркивания. Скретч чувствителен к
регистру: он различает большую и маленькую буквы и слова «очки» и «Очки» — это разные имена для разных переменных и списков:
Примеры имен: балы, имя игроки, Тур, игрок1, игрок2, игрок_2. Давайте понятные имена и помните, что изменить имя переменной после ее создания нельзя, но переменную и список можно удалить и создать снова с тем же или другим именем.
Слайд 7
Слайд 8Локальные и глобальные
Переменные и списки могут быть двух типов — локальные (только
для этого объекта) и глобальные (для всех объектов). Локальные доступны только для одного объекта.
По своему назначению они являются параметром или памятью того спрайта, для которого были созданы. Глобальные — доступны для всех спрайтов и сцены проекта. Имена локальных переменных могут быть одинаковыми у разных спрайтов, но они не могут совпадать с именами глобальных переменных.
Источник: theslide.ru