что такое скрипт в скретч
Концепции программирования в Scratch
Многим знаком Scratch – детская среда программирования, обучение в которой обычно сводится к созданию творческих проектов по принципу «от простого к сложному». При этом «классический подход» к изучению программирования (переменные → ветвления → циклы → функции → структуры → объекты → …) в Scratch затруднителен.
Однако изменение последовательности изучения понятий (назовем их концепциями) структурного, объектно- и событийно-ориентированного программирования, их сокрытие за яркими спрайтами и интерактивной анимацией, не означает, что на концепциях не следует делать акцент. Особенно, если целью ставится не столько развитие творческих способностей, сколько обучение программированию. Эту идею я постаралась отразить в своем курсе.
Первым, с чем сталкивается начинающий скретчер, являются спрайты. Хотя в Scratch как такового объектно-ориентированного программирования нет, спрайты можно считать объектами. На этом этапе обучающийся видит, что в программе может быть множество объектов, поведением которых управляют внешние для них скрипты. Спрайты получают команды или по требованию передают информацию о своем состоянии, то есть программирование сводится к управлению объектами.
Вторым, что в Scratch сразу сваливается на голову юного программиста, является понятие о многопоточности. Каждый спрайт может иметь по несколько скриптов, выполняемых одновременно. Несколько спрайтов также могут выполнять свои программы одновременно друг с другом. Причем оказывается сложнее организовать последовательное выполнение.
Уже на первом занятии мы не можем избежать знакомства с циклами. Иначе кот особо не разбежится. На этом этапе знакомство приходится оставлять интуитивным и поверхностным. Мы ограничиваем его циклами «повторять всегда» и «повторить … раз», которые более просты для понимания. Цикл с условием изучается в уроке, специально посвященном циклам. Этот урок предполагает знание логических выражений и переменных.
Поскольку Scratch событийно-ориентированная среда, блоки условного оператора удобнее изучить до переменных. Условием могут выступать те или иные события.
На мой взгляд, такая последовательность лучше, так как за каждый урок мы вводим минимум понятий. Причем не абстрактных, а сразу видим их практическую пользу.
Если же сначала изучать переменные, то их назначение и пользу сложно продемонстрировать, поскольку до этого не изучен условный оператор, ввод данных и генерация случайных чисел.
В Scratch, не считая списков, программист сталкивается с тремя типами данных: числами, строками и булевым типом. При этом тип привязан к значению, а не переменной. Преобразовывать строки в числа и обратно не требуется. Строки в кавычки не заключаются.
Блок, возвращающий логическое значение и имеющих характерную для него угловатую форму, можно вставлять в округлые поля. Обратное не верно: там где предполагается логическое выражение, нельзя вставить обычную переменную.
Scratch реализован так, чтобы в процессе выполнения не возникало критических ошибок. Видимо поэтому, если попытаться использовать строку в арифметической операции, она заменяется нулем (см. первый скрин).
Программист должен знать, что возможности языков программирования расширяются библиотеками. Работая в Scratch, ученик может подключать дополнения, которые приводят к появлению в среде новых команд.
Функции в Scratch реализованы в разделе «Другие блоки», где с одной стороны вы создаете собственный блок, который можно вставлять в другие скрипты. С другой стороны – должны собрать функциональность этого блока, то есть то, что он будет делать.
Возврата значении из скретч-функции нет.
Таким образом, изучение концепций программирования в событийно-ориентированной среде накладывает свой отпечаток. По сути мы сначала изучаем более сложные и абстрактные понятия и, лишь углубляясь в процесс, переходим к элементам структурного программирования. Плюс это или минус для первого знакомства – вопрос спорный.
Scratch для «продвинутых»
Клонирование и переменные в Scratch
Моему ученику нравилась игра — «Зомби против растений». И ему было интересно самому запрограммировать её. Давайте вспомним как данная игра работает? С правой стороны у нас есть шеренга растений, которая расстреливает приближающихся зомби.
Есть множество решений данной задачи, но на мой взгляд более элегантное решение — задействовать минимально возможное количество спрайтов, т.е. использовать клонирование.
Как сделать так, чтобы у каждого отдельного клона был собственный уровень жизни? Что выбрать переменные или списки? Сделали попытку использовать списки, но после более детальной проработки поняли, что данная структура данных не помогает решить проблему. У переменных и списков, в Scratch есть 2 типа видимости для каждого типа данных — это «для всех спрайтов» или «только для этого спрайта». Пришлось проверять область видимости. Начали мы с переменных.
Дойдя до рабочего варианта переменной с областью видимостью «только для этого спрайта». В классических языках программирования такой тип видимости называют — локальным или приватным в зависимости от контекста.
Оказывается, что если эта переменная с данной областью видимости используется в клоне, то в клоне создается экземпляр переменной, принадлежащий конкретному клону и который используется для внутренних вычислений/работы клона. В нашем случае, у каждого клона есть своя «жизнь». Если стало интересно, то советую обратиться к справочнику. А вот картинка, которая показывает, как спрайты или клоны работают с переменными разных типов видимости.
Переменная с областью видимости «для всех спрайтов» (рисунок слева) — одна на всех. Кстати, здесь вы можете с детьми посмотреть работу с критическими секциями и что такое гонка за ресурс. А если область видимости переменной — «только для этого спрайта», то у спрайта и у его клонов появляется собственная переменная с тем же именем, с которой они работают (рисунок с права). И клоны не имеют доступа к переменной оригинала и переменной другого клона.
Это стало неожиданным и приятным открытием свойств Scratch для создания подобных алгоритмов.
ВАЖНО: Переменная — это очень мощный инструмент настоящего программиста, поэтому я сразу учу детей правильному именованию переменных, так как этот навык поможет им в проектах разной сложности.
Имена объектов как их идентификаторы
ВАЖНО: все переменные с зоной видимостью «только для этого спрайта».
Данный инструмент для меня стал совсем неожиданным. Давайте начнем с истории о том, как мы с учеником наткнулись на данную особенность языка. Мой ученик решил, создать игру с «искусственным интеллектом». Игра представляет звездные войны на космических кораблях и у игрока есть возможность управлять одним кораблем, в то время как противники гоняются за вами и за друг другом. Чтобы они могли преследовать вас или друг друга, им нужно как-то принимать решение о том, кого преследовать. Данную задачу можно решить в лоб и задать очередность преследования кораблей, но игра потеряет свою интеллектуальность и быстро наскучит. Поэтому ученик решил настроить интеллект таким образом, чтобы корабли с интеллектом преследовали ближайшего противника. Давайте посмотрим, как он начал решать данную задачу.
На мой взгляд хорошее решение для создания быстрого прототипа. Но какие ограничения здесь есть? Первое, усложнение кода по мере добавления новых кораблей. Следовательно, сложность кода повышается и не исключены мутации кода из-за усложнения. Время поиска ошибки и отладки алгоритма будет расти. И конечно, никто не отменял такую прикольную метрику, как старение кода (advance level SW Development). Что же делать? А делать необходимо следующее, нужно сделать обобщеный алгоритм, который будет динамично приспосабливаться к увеличению или уменьшению количества кораблей.
Для данного алгоритма нам и понадобиться свойство языка — имя как идентификатор объекта. Пришло время больших изменений и здесь вы, как учитель, можете рассказать про такое явление как рефакторинг. Это последовательное изменение кода, улучшение его структуры и его оптимизация. А главное, чтобы каждое изменение не ломало работу программы, и объем изменений тоже должен очень аккуратно подобран. Слишком много изменений — плохо, слишком мало — долго. Сформированный навык рефакторинга даст преимущество и эффективность работы программиста. Но для формирования навыка нужно работать головой, а не просто тыкаться. У меня получилось сделать 4 изменения в первоначальной программе и результат не изменился.
Заметьте, что я еще не удалил блоки, а оставил их. Зачем? Потому, что если что-то пойдет не так, мы можем вернуть предыдущий вариант, начав все заново. Но как только я проверю правильность выполнения обновленного скрипта, я сразу же их удалю, чтобы не отвлекаться на них в последующем.
Заметили? Сейчас в блоке «повернуться к …» стоит переменная и эта штука работает. Т.е. мы минимальными усилиями проверили, что данный подход работает. Это просто круто. Теперь мы можем начать писать алгоритмы, которые позволят определять объект преследования ближайшего корабля.
Что нам пригодится? Это из структур данных — это переменные и списки. Из алгоритмов — это нахождение минимального числа (расстояния) в списке. Еще нам необходим алгоритм, который определит имя объекта для преследования по минимальному расстоянию.
Сейчас будет написано много кода. Но для того, чтобы потом не захлебнуться и не запутаться в куче скриптов, нам необходимо использовать еще одну классную функцию, а именно создание собственных блоков. Эта функция очень мощная, но ее редко используют школьники, да и некоторые программисты, а ведь она позволяет создать понятный с первого прочтения алгоритм программы. Кстати, можете почитать про приемы создания понятного кода в книге Мартина Фаулера «Рефакторинг. Улучшение существующего кода»
Как и перед любым масштабным строительством нам необходимо все спланировать. Давайте спланируем в каком порядке будем разрабатывать блоки:
Для того, чтобы создать обобщенный алгоритм нам чем-то нужно пожертвовать, например, оригинальными именами спрайтов, придется их стандартизировать и получим следующий расклад.
И теперь мы готовы описать 1 часть программы. Все пишем для 1-ого корабля. Запускаем отдельно данный скрипт и смотрим результат. Поехали!
Если мы добавим новый корабль, нам нужно изменить в данном алгоритме лишь одну циферку. Клево? Клево!
Погнали дальше. А давайте научим его 2 алгоритму. Смотрим, что получилось. Это сразу конечный результат со вспомогательными функциями.
Ура! Работает. Проверить это можно следующим образом, должен быть обязательно 0 одним из значений в списке расстояний. Если у вас это не так, ищите ошибку.
Едем дальше! Поиск минимального расстояния. Заметили, что расстояние всегда положительно. И всегда будет минимальное число — 0. Ай-я-яй! Вывод — искать минимум, но не ноль. Можете попробовать свои силы и оптимизировать код самостоятельно, чтобы не делать расчет расстояния от корабля 1 до корабля 1 (это не опечатка).
Обучаем спрайт новой функции и получаем.
Не забываем проверять! Для этого можно даже остановить игру и запустить отдельный скрипт.
Мы написали все, что необходимо, теперь главное правильно использовать данные функции.
Если у вас все работает правильно, то вы должны увидеть следующее:
Заметили, что корабль с «искусственным интеллектом» разрывается между разными противниками. Вы можете усовершенствовать программу и усложнить принятие решения. Например, если у преследуемого корабля осталось мало жизни, то он добивает его, а если он нашел, ближе и с еще меньшим здоровьем, то добить сначала слабейшего.
Кстати, в данной программе можно уменьшить количество действий и усовершенствовать алгоритмы. Попробуйте свои силы. Взять данную программу можно здесь.
Подводим итоги
Вот на таких кейсах я узнал, как Scratch дает возможность ученикам быстрее освоить множество реальных техник программирования. На нем можно рассказывать про работу критических секций, про обобщенные алгоритмы, про переменные и их области видимости, про создание собственных блоков и структурирование кода. А также на данном языке можно рассказывать про профессиональные навыки, например, рефакторинг.
Это лишь малая часть инструментария программиста, но она являет очень важной. А в Scratch это объяснить становится чуточку легче.
Творческая мастерская Scratch
Включите колонки или наденьте наушники!
Scratch (Скретч) это программа, которая позволит вам создать собственные анимированные интерактивные истории и компьютерные игры. Этими произведениями можно обмениваться с сообществом Скретч-проектов по всему миру.
Если вы еще сомневаетесь, стоит ли этим заниматься, то посмотрите, что можно делать с помощью Scratch. (кликните по картинке)
Онлайн консультация
Если у Вас возникли вопросы или идеи по работе в Scratch, Вы можете задать их лично мне через систему внутренних сообщений на сайте.
Занятие 1. Скачать и установить Scratch.
На первом занятии мы скачаем Scratch на свой компьютер и установим его в системе.
Подробно о процессе загрузки и установки Scratch я рассказал в видео.
Как видно из видео, ничего сложного нет.
Занятие 10. Сретч-квест
Квест, приключенческая игра — один из основных жанров компьютерных игр, требующих от игрока решения умственных задач для продвижения по сюжету. Сюжет может быть предопределённым или же давать множество исходов, выбор которых зависит от действий игрока.
Если клавиша стрелка вверх, то повернуться вверх пройти 5 шагов и установить значение переменной 0. Все остальные нажатия – вправо, влево и вниз – отрабатываются точно так же.
С кошкой все ясно. А вот мир вокруг кошки устроен сложнее, он должен помнить, откуда идет кошка и куда она должна попадать при ее соприкосновении с экраном. Как только кошка касается экрана, она посылает миру сигнал – передать «Change place»
В ответ на этот сигнал среда начинает анализировать положение (направление) кошки и фон, на котором она находится. Все изображения – костюмы фона.
В зависимости от того, куда смотрит кошка, и из какой комнаты она пришла, фон подсовывает под кошку новое изображение окружающего мира.
Теперь мы можем путешествовать из комнаты в комнату или из области в область. Усложним игру, добавив к кошке двух злобных демонов. Каждый из них постоянно поворачивается в сторону кошки и двигается к ней. Если один из демонов касается другого, он замирает. Если демон коснется кошки, то мы проиграли.
Добавим кошке миссию, которую она должна выполнить, переходя из одной области в другую: найти и собрать семь зеленых шариков. Шарики должны быть видимы в некоторых областях и невидимы в других.
Теперь у нас практически полноценный квест, в котором игрок бродит по полям, собирает зеленые шарики и ускользает от противников.
Проект можно расширять новыми заданиями и новыми областями.
Занятие 2. Создаем первый скрипт и исследуем среду Скретч
На этом занятии мы научимся создавать скрипты в среде Скретч. Как это делать, вы узнаете, просмотрев видео. А создав свой первый скрипт, вы немного поэкспериментируете.
Итак, начинаем занятие.
На рисунках указаны и пронумерованы кнопки. Ваша задача: Выяснить, для чего нужна каждая из них? Когда выясните это, напишите в комментариях к этому уроку.
Следующий урок будет в четверг 9 сентября.
Занятие 3. Сообщество Scratch
На этом занятии мы вступим в сообщество Scratch и научимся в нем работать.
Следующий урок будет в понедельник 13 сентября.
Занятие 4. Создаем спрайт и его костюмы
А теперь задание:
Следующий урок в четверг 16 сентября.
Занятие 5. Кирпичики контроля, движения и внешнего вида
Мы уже многому научились, судя по работам. Теперь пришло время немного обобщить, привести в порядок. Этим мы займемся на этом и следующем уроке, а заодно и усложним задания
Внешний вид объекта (фиолетовый ящик)
Все команды однозначны. Чаще всего употребляются команды «Изменить()» и «Убрать графические эффекты». Переходы между слоями легче всего пояснить на примере 2-х одинаковых спрайтов котенка. У одного из них покрасим глаза в голубой цвет. Если мы теперь попросим одного из котят менять слой, то получится простая мультипликация – котенок будет менять цвет глаз.
Здесь приведен самый простой пример, но мы можем увеличить число объектов.
Команда
Назначение
Перейти к костюму (можно выбрать костюм героя)
По умолчанию объект одет в костюм кошки, но мы можем выбрать и другие костюмы из библиотеки, пользуясь командой Импорт.
Изменить значение костюма
Изменить значение костюма на одну или несколько единиц. Имеет смысл только тогда, когда у нас несколько «импортных» костюмов.
Сказать фразу, которую мы можем записать в окошечке команды.
К сожалению, пока можно использовать только латинские буквы.
Думать – отличается от «говорить» только графическим оформлением фразы
Убрать графические эффекты
Очистить все графические эффекты. Если мы производили над объектом видоизменение, то в результате этой команды все они отменяются
Изменить (цвет, округлость, яркость) () – видоизменить объект по одному из перечисленных параметров на указанную величину.
Показать объект – он становится видимым
Перейти в верхний слой
Объект перемещается в первый слой
Перейти назад на () слоев
объект уходит на несколько слоев внутрь
Возвращает значение костюма, который в данный момент одет на нашем исполнителе.
В синем ящике сложены строительные блоки, управляющие перемещением объектов по экрану.
Центральная точка экрана соответствует координатам X=0, Y=0. Вправо от нулевой точки X возрастает и это область положительных значений. Влево – область отрицательных значений.
Научимся использовать блоки, которые не являются командами, а возвращают значения – положение x, y и направление. Простой пример:
Мы хотим, чтобы котенок последовательно переходил из нижнего правого угла в левый верхний угол.
Команда
Назначение
пройти вперед указанное число шагов. Например:
Идти(10) – сделать десять шагов назад
Идти (-30) – сделать 30 шагов назад
Например: повернуться на 45 градусов (стрелочка указывает по или против часовой стрелки)
Повернуться в направление()
Повернуться в указанном направлении.
Например: повернуться в направление(180)
Повернуться в направлении другого существа или координат мышки. После команды всегда существует перечень объектов, которые в данный момент присутствуют в системе и на которые можно реагировать.
В самом простом случае, когда других объектов нет, предлагается повернуться в сторону, где находится указатель мышки.
Изменить положение по оси X на указанное число шагов.
Например: Изменить X (-10) – объект смещается влево на 10 шагов
Установить объект положение по оси x.
Например: Установить x в (50)
Переместиться в точку с указанными координатами
Например: Идти в x(70) y(-50) В начале проекта всегда стоит установить персонаж в конкретную точку, чтобы точно знать, где он находится.
Плыть () сек в точку
Плавно переместиться в точку с указанными координатами за указанное время. На перемещение затратится время указанное в секундах.
Например: Плыть(20) сек в точку x(90) y(90)
Объект медленно (в течение 20 секунд) будет переползать в указанную точку.
Перейти в точку, где расположен указатель мыши или другая фигура.
Если край, оттолкнуться
Если попадаешь в край экрана, то отразись от него. Это очень полезно, если Вы не хотите потерять своего героя
Следующие несколько блоков нельзя использовать в качестве отдельных строительных блоков, но они могут быть вставлены внутрь строительных кирпичиков в качестве входных параметров
Возвращает значение по оси X
Например: Установить y (положение x)
Возвращает значение по оси y
Например: Установить x (положение y)
Кирпичики контроля (желтый ящик)
Кирпичики контроля позволяют собирать блоки команд и управлять последовательностью исполнения скриптов. Они определяют то, при каких условиях совершается то или иное действие. Они позволяют спрайтам передавать, принимать и реагировать на управляющие сообщения.
Команда
Назначение
Когда щелкнут по флажку
Запускает скрипт в ответ на щелчок по зеленому флажку. Это обычный способ запуска всей модели.
Когда нажата () клавиша
Запускает выполнение блока команд в ответ на нажатие выбранной клавиши. Позволяет передать управление на клавиатуру.
Например: когда нажата стрелка вверх, повернуть вверх
Команда ожидания. Параметр () указывает сколько секунд следует ждать.
Блок команд, заключенных внутрь конструкции будет выполняться постоянно.
Условие, при выполнении которого должны выполняться команды, заключенные внутри конструкции. Если не выполняется, то никаких действий
Условие, при выполнении которого должны выполняться команды, заключенные внутри конструкции если.
Если не выполняется, то нужно перейти к действиям внутри блока или.
Повторение. Параметр указывает, сколько раз нужно повторить блоки команд, заключенные внутри блока повторить()
Например, повторить 20 (идти 50 повернуть 45)
Передать сообщение. Переданное сообщение может запускать активность другого исполнителя. Работает в сочетании с командой «Когда я получил ()» (Про блоки Перередать и Когда получил у нас отдельный урок)
Запускает выполнение блока команд в ответ на полученное сообщение. Работает в сочетании с «передать ()»
Выполняется до тех пор, пока условие () верно
Ждать, пока не выполнится условие
Остановить выполнение программы для данного исполнителя
Остановить выполнение всех программ
Задание:
1) Слоненок издалека подходит к мячику. Как-будто ударяет по нему и мяч улетает. Слоненок радостный кричит: «Урааа!». Подсчитать количество шагов, сделанных слоненком до мяча. Применить эффекты приближения и удаления.
2) Придумайте свою подобную историю. Подсказка: пусть это задание будет подготовкой к выполнению итоговой работы.
3) Разместите проекты на сайте Скретч, в комментариях напишите ссылки на проекты.
Для примера
Это скрипт летучей мыши. Особенности:
Это скрипт обычной мыши. Особенности:
Занятие 6. Кирпичики рисования, звука, операторов и сенсоров
Команды рисования (темно-зеленый ящик)
В зеленом ящике собраны команды, которые позволяют управлять пером или карандашом, которым могут рисовать наши объекты. Как и черепашка Лого, все объекты Скретч могут рисовать и оставлять на экране свои отпечатки.
Мы можем менять цвета и размер карандаша, поднимать и опускать карандаш. В результате выполнения сценария на экране рисуются разноцветные геометрические фигуры.
Команда
Назначение
Очистить экран от всех следов, которые на нем оставили объекты
Опустить карандаш. После этой команды за движущимся объектом будет оставаться след.
Установить цвет пера()
Выбрать цвет, которым мы собираемся рисовать. Цвет можно выбрать из объектов на экране
Изменить цвет пера на ()
Изменить цвет пера на указанное значение.
Например: Изменить цвет пера на (50)
Установить градиент цвета следа, который оставляет объект. 100 – белый, 0 – черный.
Отпечатать объект на экране. Например, у нас есть спрайт дерево и мы хотим посадить лес из деревьев разного размера.
Лиловый ящик Скретч предоставляет массу звуковых возможностей. При этом звук можно выбрать в библиотеке – там этих звуков достаточно много. Так же как и библиотека картинок, библиотека звуков расширяется и к ней можно добавлять свои звуки в формате wav. Звуки можно записывать в редакторе самой среды Скретч. Внутрь звуковых кирпичиков можно добавить любые значения, которые мы вычисляем или считываем с датчиков. К разным объектам в Скретче можно добавлять свои музыкальные партии.
Команда
Назначение
Воспроизвести звук (можно выбрать звук). При этом звук никак не влияет другие действия нашего объекта
Играть звук до завершения
Играть звук до его завершения. Никакие другие действия наш спрайт при этом не совершает.
Выбрать инструмент, который будет играть. Инструментов в Скретче более 130
Ударные играют указанное число тактов
Играть определенную ноту указанное количество времени (в секундах). Ноты записаны в цифрах, но против каждой цифры стоит ее звучание.
Все звуки данной модели умолкают
Возвращает значение темпа игры
Операторы (зеленый ящик)
Команда
Назначение
Сравнение больше, равно, меньше.
Перечень возможных функций показан на рисунке после этой таблицы
Возможные вычисляемые функции
Посмотреть на результат выполняемой функции можно, если попросить котенка или другого героя сказать или подумать результат функции:
Сенсоры (голубой ящик)
Кирпичики из голубого ящика тоже нельзя использовать в качестве строительных блоков, но они могут использоваться, как и числа и логические значения «истина» или «ложь». Для того чтобы посмотреть на значение датчика можно попросить котенка проговорить или продумать значение датчика. Интересно, что датчик может получать информацию не только от объекта, с которым он связан, но и от любого объекта, существующего в нашей системе. Например, спрайт котенка может узнать касается ли он спрайта мышки, координаты другого спрайта.
Команда
Назначение
возвращает значение указателя мыши по оси x
возвращает значение указателя мыши по оси x
Касается цвет () цвета
Касаются ли указанные цвета. Возвращает «истина» или «ложь»
Нажата ли управляющая клавиша мышки? Возвращает «истина» или «ложь»
Касается ли наш объект мышки или другого существа касается ли наш объект цвета() соприкасается ли цвет() с цветом().Возвращает «истина» или «ложь»
Возвращается размер, положение по x или y, направление, костюм и громкость любого объекта существующего в данной модели.
Возвращает расстояние от нашего спрайта до выбранного объекта – край, мышка, другой спрайт.
Переменные (оранжевый ящик)
В оранжевой ящике изначально ничего не лежит, кроме предложения «создать переменную». Мы сами создаем кирпичики, которые планируем использовать в своих сценариях. Если мы щелкаем по кнопке «создать переменную», то Скретч предлагает определить имя и свойства новой переменной. Переменные могут быть глобальными и локальными.
Глобальные переменные действую для всех объектов внутри данного проекта. Локальные переменные действуют только для данного объекта. Например, мы хотим несколько раз сыграть несколько нот, постепенно убыстряя темп игры. Мы создаем две локальные переменные – «nota» и «temp”
Temp – определяет время звучания и увеличивая значение этой переменной мы ускоряем скорость игры.
Задание.
Выбирайте один (можно и все ). Проекты расположены по мере увеличения сложности:
1) Создайте оркестр из нескольких музыкантов, чтоб они еще и пританцовывали. Музыку можете написать свою или загрузить готовую.
2) Изобразите рост нескольких деревьев. Скорость роста разная у разных пород. Озвучьте проект.
Созданные проекты разместите на сайте Скретч, в комментариях разместите ссылки на них. Обсудите проекты участников Мастерской.
Занятие 7. И обобщим основные приемы.
1. Переменные
Переменная – это ячейка памяти, в которую программа может записывать значения: числа, строки и использовать (считывать) их позднее для вычисления новых значений.
Для присваивания и изменений значений переменных используются блоки поставить переменная в выражение и изменить переменная на выражение. Значение переменной можно отобразить на сцене с помощью монитора. Значение можно изменять и вручную с помощью слайдера (рычажка).
Посмотрите примеры: Korvpall и Ideaal
2. Списки
Список в Scratch представляет собой упорядоченный набор ячеек памяти (элементов). На элементы можно ссылаться с помощью имени массива и индексов. В Scratch можно создавать и использовать списки с помощью блоков группы Переменные. С помощью блоков этой группы можно добавлять элементы в конец списка или в середину, заменять, удалять и ссылаться на элементы.
3. Ввод/вывод
При решении задач часто необходимо задать программе исходные данные и отобразить результаты. В первом случае говорят о вводе (считывании) данных, во втором – о выводе данных (печати, отображении). В Scratch для ввода данных можно использовать мониторы данных с рычажком (только для чисел) и блок Спросить, который дает возможность вводить числа и тексты в режиме диалога. Результаты переменных и/или списков можно выводить с помощью мониторов или блока Говорить.
4. Последовательность и параллельность
При создании программы следует учитывать, что действия, задаваемые блоками, выполняются в определенном порядке. Простейшим случаем является последовательный процесс, при котором блоки выполняются подряд сверху вниз.
Два или несколько скриптов (процессов) можно выполнять одновременно, т.е. параллельно. Параллельное выполнение можно задавать несколькими способами. Например все скрипты, первый блок в которых это блок с зеленым флажком, запускаются одновременно и выполняются параллельно, если щелкнуть по зеленому флажку.
Параллельно выполняются также скрипты, начинающиеся блоком Когда я получу сообщение, в которых принимается одинаковое сообщение.
5. События
Внутри скриптов часто используется блок касается <спрайт | край | курсор>? Если данный спрайт касается другого спрайта, края сцены или указателя мыши (курсора), то блок возвращает значение истина.
В принципе нажатие на зеленый флажок и запуск скриптов с помощью блоков передать и когда я получу сообщение также являются событиями.
6. Взаимодействие между спрайтами
Если программа состоит из нескольких скриптов, то часто возникает необходимость в координировании и синхронизации их работы. Один спрайт может обратиться к другим, те в свою очередь к следующим и т.д. Для организации работы скриптов используются блоки: передать сообщение; передать сообщение и ждать; когда я получу сообщение.
Представленная рядом программа состоит из четырех скриптов. Скрипт с зеленым флажком является главным. С него начинается работа программы и он запускает остальные. Если пользователь вводит букву ”д”, то запускается скрипт Читай, и после окончания им работы запускается скрипт Вычисли. Если введена отличная от д буква, то сразу запускается скрипт Вычисли.
С 11 октября мы перейдем к созданию конкретных видов проектов. Мы научимся создавать игры, презентации, мультфильмы, а может и более сложные вещи.
Занятие 8. Создаем презентацию или комикс
На сегодняшнем уроке мы научимся создавать презентацию. Этот же формат подходит и для создания комиксов. В качестве учебного пособия я создал презентацию о том, как надо создавать презентацию. Поработайте с ней, чтобы понять основные принципы.
Управляющие скрипты очень просты:
На слайдах можете создавать все, что захотите из того, чему вы научились. Представленные скрипты используются для переключения слайдов.
Для примера комикса предлагаю посмотреть работу, которую сделала моя дочка Ксюша (с моей помощью конечно).
Задание : создайте презентацию о своем хобби, любимом занятии или комикс по любимой сказке. Загрузите работу на сайт Scratch и разместите ссылку на нее в комментариях.