Что могут обозначать блоки скриптов scratch
Что могут обозначать блоки скриптов scratch
Эта статья предназначена для версии Скретч 2.0. Для просмотра похожей статьи для версии 1.4 перейдите по ссылке Блок (1.4)
Эта статья о программировании. Для просмотра статьи о блокировании пользователей, перейдите по ссылке Бан
Содержание
Формы блоков [ ]
Шапка [ ]
Главная статья: Блок шапка
Форма обычного блока
Обычный блок [ ]
Главная статья: Обычный блок
Обычные блоки – это блоки команд. Они прикрепляются сверху выступом и прикрепляют снизу выступом вовнутрь, то есть остальные блоки могут быть помещены как сверху, так и снизу обычных блоков. Всего насчитывают 77 таких блоков – это самая большая категория блоков.
Форма логического блока
Логический блок [ ]
Главная статья: Логический блок репортёр
Логические блоки – это условия, определяющие правильно или ложно заданное условие. Спроси своего друга «2 умножить на 2 будет 4?» и попроси его ответить только «Да» или «Нет». Твой друг станет этаким логическим блоком. Они имеют форму шестиугольника и всего насчитывается 13 таких блоков.
Форма блоков репортёров
Блок репортёр [ ]
Главная статья: Блок репортёр
Форма обвивающего блока
Обвивающий блок [ ]
Главная статья: Обвивающий блок
Обвивающие блоки – это блоки повторения или блоки условий. Их насчитывают всего 5 и их можно найти во вкладке » Контроль «. Имеют выступ вовнутрь сверху и простой выступ внутри и снаружи.
Форма закрывающего блока
Закрывающий блок [ ]
Главная статья: Закрывающий блок
Закрывающие блоки заканчивают скрипт или все процессы. Имеют выступ вовнутрь всерху и не могут иметь прикреплённых блоков снизу. Всего существует 2 закрывающих блока, и оба находятся во вкладке «Контроль».
Список блоков [ ]
Всего насчитывается 145 блоков в Скретч 2.0
Блоки движения [ ]
Главная статья: Блок движения
Блоки движения – блоки, помогающие спрайту двигаться. Существует 17 блоков движения, причём все недоступны для программирования сцены:
Обычные блоки движения [ ]
Блоки движения репортёры [ ]
Блоки внешности [ ]
Главная статья: Блок внешности
Блоки внешности – блоки, контролирующие внешность спрайта. Всего существует 23 таких блоков из которых 19 доступно для сцены.
Обычные блоки внешности [ ]
Блоки внешности репортёры [ ]
Блоки звука [ ]
Главная статья: Блок звука
Блоки звука – блоки, управляющие звуками и ЦИМИ (MIDI) функциями. Насчитывают 13 таких блоков, причём все могут быть использованы сценой.
Обычные блоки звука [ ]
Блоки звука репортёры [ ]
Блоки рисования [ ]
Главная статья: Блок рисования
Блоки рисования – блоки, управляющие пером спрайта.
Обычные блоки рисования [ ]
Данные [ ]
Переменные [ ]
Блоки переменных – 5 блоков, изменяющих переменные проекта.
Обычные блоки переменных [ ]
Блоков переменных репортёров существует столько, сколько в проекте переменных.
Массивы [ ]
Главная статья: Массив
Блоки массивов помогают управлять массивами проекта. Всего их 10 штук.
Обычные блоки массивов [ ]
Блоки массивов репортёры [ ]
Логические блоки массивов [ ]
Блоки событий [ ]
Главная статья: Блок событий
Урок 20. Другие блоки в Scratch, подпрограммы и функции в программировании
Этот урок — один из самых важных, особенно для тех, кто всерьёз решил освоить профессию программиста. Мы изучаем понятие подпрограмм и функций в программировании. В Scratch нет этих понятий, но есть возможность создавать Другие блоки. Это и есть прямой аналог подпрограмм. Подумай, что по-твоему, значит термин подпрограмма. Внимательно слушай объяснения учителя. И ты убедишься, что это совсем не сложно, а даже наоборот — удобно. С помощью других блоков (подпрограмм) мы научимся делать код короче и понятнее, то есть оптимальнее. Вперёд! Успехов! 🙂
Замечание: с января 2019 года на сайте Scratch доступна новая версия редактора — Scratch 3.0, который внешне немного отличается от Scratch 2.0, в котором записывался данный урок. Поэтому если возникнут вопросы, пиши их, пожалуйста, в комментариях к видео или внизу этой страницы сайта. Мы провели сравнение двух версий языка в серии прямых эфиров.
Scratch 2.0 по-прежнему можно использовать, скачав и установив программу на свой компьютер. Мы записали также видео-уроки о том, как установить Scratch 2.0 и Scratch 3.0 на свой компьютер.
Часть 1. Оптимизируем игру «Викторина» с помощью других блоков
0:48 — изучаем проект, в который будем добавлять Другие блоки.
2:00 — начинаем оптимизировать код скрипта викторины, создаём и определяем Новый блок
4:12 — используем Новый блок в основном коде скрипта (вызываем подпрограмму)
4:49 — собираем весь код и убеждаемся, что он получился короче и понятнее — оптимальнее!
5:18 — тестируем правильность работы нового оптимизированного скрипта
5:44 — переходим к теории: как всё это правильно называется в программировании. Узнаём понятия «подпрограмма» и «функция».
8:12 — задание: открой проект «Простая викторина» и оптимизируй его код с использованием Других блоков.
Проект «Простая викторина», который оптимизируется путём создания другого блока, здесь: https://scratch.mit.edu/projects/73491752/.
Итоговый, оптимизированный проект, с другим блоком, здесь: https://scratch.mit.edu/projects/74172132/.
Подумай, как можно сделать скрипт ещё более красивым, понятным, оптимальным с помощью других блоков-подпрограмм.
В первой части урока ты узнал(а) и научился(ась):
Часть 2. Делаем красивый код в проекте «Викторина»
0:25 — вспоминаем, что такое «красивый код«.
0:55 — переходим к коду нашего проекта и начинаем делать его более минималистичным и понятным.
1:30 — редактируем ранее созданный Другой блок.
1:58 — как ещё можно сделать код более понятным и красивым? Создаём и вызываем Новые блоки «Инициализация» (для задания начальных значений) и «Завершение викторины» для завершающей части скрипта.
4:02 — анализируем и закрепляем минималистичный код основного скрипта. Так делают все программисты!
4:50 — задание: сделай код любого своего проекта более красивым и понятным.
Задание: вспомни, как мы оптимизировали код проекта «Простая викторина» с использованием списков в уроке 19, и постарайся сделать новую версию проекта с использованием списков и Других блоков одновременно. И увидишь, насколько код станет ещё более понятным, удобным для модификации и красивым.
Итак, теперь ты знаешь и умеешь:
Хочешь знать и уметь больше?
Если хочешь ещё лучше разобраться в этой важной теме и набраться больше опыта, посмотри и изучи ещё проекты, в которых используются Другие блоки Scratch:
Презентация по информатике на тему «Виды блоков в Scratch»
Описание презентации по отдельным слайдам:
ВИДЫ БЛОКОВ в Урок 2
«Визуальная грамматика» Scratch Грамматика Scratch не даст вам соединить блоки друг с другом, если их форма несовместима. Из самостоятельных блоков собирают последовательность действий объектов. Служебные блоки вставляют в окошки других блоков для уточнения их действия
Отвечают на вопрос когда? Эти блоки размещаются в начале каждого скрипта и определяют то событие, которое будет запускать скрипт на выполнение. Содержатся в категории контроля: Самостоятельные блоки заголовки
Стеки (от англ. stack — стопка) имеют выемку сверху и выступ снизу для соединения в «стопку». Отвечают на вопрос: что сделать? Большинство стеков имеют окна для записи в них необходимых чисел и слов, вставки служебных блоков: Вместо указанных по умолчанию чисел и слов можно написать другие, выделив эти значения указателем мыши: Самостоятельные блоки стеки
Их называют заглушками, потому что эти блоки категории контроля останавливают («глушат») работу одного скрипта или всех скриптов проекта – Часто заглушку добавляют во внутрь С-блока, чтобы останавливать скрипт при определенных условиях: Самостоятельные блоки заглушки
Любая программа нуждается в данных. Данные, которые также называют параметрами, уточняют действие блоков, например, указывают число шагов или содержат фразу для ее вывода на сцене проекта. Большинство блоков имеют окошки для данных. В эти окна можно записывать числа и слова, а также вставлять служебные блоки и целые конструкции служебных блоков Служебные блоки
Эти блоки имеют форму шестиугольников. Нетрудно догадаться, что их помещают в шестиугольные окна. Они содержат логические значения (истина или ложь). Служебные блоки Логические блоки
Курс повышения квалификации
Дистанционное обучение как современный формат преподавания
Курс профессиональной переподготовки
Информатика: теория и методика преподавания в образовательной организации
Курс повышения квалификации
Современные педтехнологии в деятельности учителя
Ищем педагогов в команду «Инфоурок»
Номер материала: ДБ-1359984
Не нашли то что искали?
Вам будут интересны эти курсы:
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.
Путин поручил не считать выплаты за классное руководство в средней зарплате
Время чтения: 1 минута
В России утвердили новый порядок формирования федерального перечня учебников
Время чтения: 1 минута
Росприроднадзор призвал ввести в школах курс по экологии
Время чтения: 1 минута
Костромская область разработала программу привлечения педагогических кадров
Время чтения: 2 минуты
Учителям предлагают 1,5 миллиона рублей за переезд в Златоуст
Время чтения: 1 минута
Время чтения: 2 минуты
Подарочные сертификаты
Ответственность за разрешение любых спорных моментов, касающихся самих материалов и их содержания, берут на себя пользователи, разместившие материал на сайте. Однако администрация сайта готова оказать всяческую поддержку в решении любых вопросов, связанных с работой и содержанием сайта. Если Вы заметили, что на данном сайте незаконно используются материалы, сообщите об этом администрации сайта через форму обратной связи.
Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение администрации может не совпадать с точкой зрения авторов.
Что могут обозначать блоки скриптов scratch
Материал из Скретч Вики
Эта статья о программировании. Для просмотра статьи о блокировании пользователей, перейдите по ссылке Бан
Блок – это частица пазла, используемая для создания кода в Скретч. Блоки крепятся друг к другу с помощью специальных выступов. Существуют блоки событий, комманд, репортёры, логические репортёры или блоки конца скрипта. Они имеют свои внутренности и при попытке вставить туда что-то неподходящее, будет синтаксическая ошибка. Много блоков составляют скрипт.
Выделяют 12 категорий блоков: блоки движения, внешности, звука, рисования, переменные, массивыы, события, контроля, сенсора, оператора, PicoBoard и LEGO WeDo (также существуют другие категории и блоки в модификациях Скретч). Показаны только 10 категорий.
Содержание
Формы блоков
Существуют 6 форм блоков: шапки, обычные, логические, репортёры, обвивающие и закрывающие.
Шапка
Именно с шапки начинается любой скрипт. Блок шапка — это некое событие (например щелчок по зелёному флагу), которое вызвано взаимодействием пользователя с программой. Они скруглены сверху и имеют выступ снизу для прикрепления других блоков. Существуют 7 блоков шапок, 6 из которых в категории события, 1 в категории управления.
Обычный блок
Обычные блоки – это блоки команд. Они прикрепляются сверху выступом и прикрепляют снизу выступом вовнутрь, то есть остальные блоки могут быть помещены как сверху, так и снизу обычных блоков. Всего насчитывают 71 такой блок – это самая большая категория блоков.
Логический блок
Логические блоки – это условия, определяющие правильно или ложно заданное условие. Спроси своего друга «2 умножить на 2 будет 4?» и попроси его ответить только «Да» или «Нет». Твой друг станет этаким логическим блоком. Они имеют форму шестиугольника и всего насчитывается 12 таких блоков.
Репортёр
Блоки репортёры дают какие-либо значения. Они могут быть как числами, так и строками. Например, спроси друга: «Сколько будет 2 + 2?». Он ответит «4». Твой друг станет этаким репортёром. Кстати, репортёрами могут быть и переменные. Форма репортёров – закруглённые прямоугольники. Всего насчитывают 30 таких блоков, не считая репортёров переменных и списков.
Обвивающий блок
Обвивающие блоки – это блоки повторения или блоки условий. Их насчитывают всего 5 и их можно найти во вкладке «Управление». Имеют выступ вовнутрь сверху и простой выступ внутри и снаружи.
Закрывающий блок
Закрывающие блоки заканчивают скрипт или все процессы. Имеют выступ вовнутрь сверху и не могут иметь прикреплённых блоков снизу. Всего существует 2 закрывающих блока, и оба находятся во вкладке «Контроль».
Категории блоков
Всего насчитывается 145 блоков в Скретч 2.0.
Scratch для «продвинутых»
Клонирование и переменные в Scratch
Моему ученику нравилась игра — «Зомби против растений». И ему было интересно самому запрограммировать её. Давайте вспомним как данная игра работает? С правой стороны у нас есть шеренга растений, которая расстреливает приближающихся зомби.
Есть множество решений данной задачи, но на мой взгляд более элегантное решение — задействовать минимально возможное количество спрайтов, т.е. использовать клонирование.
Как сделать так, чтобы у каждого отдельного клона был собственный уровень жизни? Что выбрать переменные или списки? Сделали попытку использовать списки, но после более детальной проработки поняли, что данная структура данных не помогает решить проблему. У переменных и списков, в Scratch есть 2 типа видимости для каждого типа данных — это «для всех спрайтов» или «только для этого спрайта». Пришлось проверять область видимости. Начали мы с переменных.
Дойдя до рабочего варианта переменной с областью видимостью «только для этого спрайта». В классических языках программирования такой тип видимости называют — локальным или приватным в зависимости от контекста.
Оказывается, что если эта переменная с данной областью видимости используется в клоне, то в клоне создается экземпляр переменной, принадлежащий конкретному клону и который используется для внутренних вычислений/работы клона. В нашем случае, у каждого клона есть своя «жизнь». Если стало интересно, то советую обратиться к справочнику. А вот картинка, которая показывает, как спрайты или клоны работают с переменными разных типов видимости.
Переменная с областью видимости «для всех спрайтов» (рисунок слева) — одна на всех. Кстати, здесь вы можете с детьми посмотреть работу с критическими секциями и что такое гонка за ресурс. А если область видимости переменной — «только для этого спрайта», то у спрайта и у его клонов появляется собственная переменная с тем же именем, с которой они работают (рисунок с права). И клоны не имеют доступа к переменной оригинала и переменной другого клона.
Это стало неожиданным и приятным открытием свойств Scratch для создания подобных алгоритмов.
ВАЖНО: Переменная — это очень мощный инструмент настоящего программиста, поэтому я сразу учу детей правильному именованию переменных, так как этот навык поможет им в проектах разной сложности.
Имена объектов как их идентификаторы
ВАЖНО: все переменные с зоной видимостью «только для этого спрайта».
Данный инструмент для меня стал совсем неожиданным. Давайте начнем с истории о том, как мы с учеником наткнулись на данную особенность языка. Мой ученик решил, создать игру с «искусственным интеллектом». Игра представляет звездные войны на космических кораблях и у игрока есть возможность управлять одним кораблем, в то время как противники гоняются за вами и за друг другом. Чтобы они могли преследовать вас или друг друга, им нужно как-то принимать решение о том, кого преследовать. Данную задачу можно решить в лоб и задать очередность преследования кораблей, но игра потеряет свою интеллектуальность и быстро наскучит. Поэтому ученик решил настроить интеллект таким образом, чтобы корабли с интеллектом преследовали ближайшего противника. Давайте посмотрим, как он начал решать данную задачу.
На мой взгляд хорошее решение для создания быстрого прототипа. Но какие ограничения здесь есть? Первое, усложнение кода по мере добавления новых кораблей. Следовательно, сложность кода повышается и не исключены мутации кода из-за усложнения. Время поиска ошибки и отладки алгоритма будет расти. И конечно, никто не отменял такую прикольную метрику, как старение кода (advance level SW Development). Что же делать? А делать необходимо следующее, нужно сделать обобщеный алгоритм, который будет динамично приспосабливаться к увеличению или уменьшению количества кораблей.
Для данного алгоритма нам и понадобиться свойство языка — имя как идентификатор объекта. Пришло время больших изменений и здесь вы, как учитель, можете рассказать про такое явление как рефакторинг. Это последовательное изменение кода, улучшение его структуры и его оптимизация. А главное, чтобы каждое изменение не ломало работу программы, и объем изменений тоже должен очень аккуратно подобран. Слишком много изменений — плохо, слишком мало — долго. Сформированный навык рефакторинга даст преимущество и эффективность работы программиста. Но для формирования навыка нужно работать головой, а не просто тыкаться. У меня получилось сделать 4 изменения в первоначальной программе и результат не изменился.
Заметьте, что я еще не удалил блоки, а оставил их. Зачем? Потому, что если что-то пойдет не так, мы можем вернуть предыдущий вариант, начав все заново. Но как только я проверю правильность выполнения обновленного скрипта, я сразу же их удалю, чтобы не отвлекаться на них в последующем.
Заметили? Сейчас в блоке «повернуться к …» стоит переменная и эта штука работает. Т.е. мы минимальными усилиями проверили, что данный подход работает. Это просто круто. Теперь мы можем начать писать алгоритмы, которые позволят определять объект преследования ближайшего корабля.
Что нам пригодится? Это из структур данных — это переменные и списки. Из алгоритмов — это нахождение минимального числа (расстояния) в списке. Еще нам необходим алгоритм, который определит имя объекта для преследования по минимальному расстоянию.
Сейчас будет написано много кода. Но для того, чтобы потом не захлебнуться и не запутаться в куче скриптов, нам необходимо использовать еще одну классную функцию, а именно создание собственных блоков. Эта функция очень мощная, но ее редко используют школьники, да и некоторые программисты, а ведь она позволяет создать понятный с первого прочтения алгоритм программы. Кстати, можете почитать про приемы создания понятного кода в книге Мартина Фаулера «Рефакторинг. Улучшение существующего кода»
Как и перед любым масштабным строительством нам необходимо все спланировать. Давайте спланируем в каком порядке будем разрабатывать блоки:
Для того, чтобы создать обобщенный алгоритм нам чем-то нужно пожертвовать, например, оригинальными именами спрайтов, придется их стандартизировать и получим следующий расклад.
И теперь мы готовы описать 1 часть программы. Все пишем для 1-ого корабля. Запускаем отдельно данный скрипт и смотрим результат. Поехали!
Если мы добавим новый корабль, нам нужно изменить в данном алгоритме лишь одну циферку. Клево? Клево!
Погнали дальше. А давайте научим его 2 алгоритму. Смотрим, что получилось. Это сразу конечный результат со вспомогательными функциями.
Ура! Работает. Проверить это можно следующим образом, должен быть обязательно 0 одним из значений в списке расстояний. Если у вас это не так, ищите ошибку.
Едем дальше! Поиск минимального расстояния. Заметили, что расстояние всегда положительно. И всегда будет минимальное число — 0. Ай-я-яй! Вывод — искать минимум, но не ноль. Можете попробовать свои силы и оптимизировать код самостоятельно, чтобы не делать расчет расстояния от корабля 1 до корабля 1 (это не опечатка).
Обучаем спрайт новой функции и получаем.
Не забываем проверять! Для этого можно даже остановить игру и запустить отдельный скрипт.
Мы написали все, что необходимо, теперь главное правильно использовать данные функции.
Если у вас все работает правильно, то вы должны увидеть следующее:
Заметили, что корабль с «искусственным интеллектом» разрывается между разными противниками. Вы можете усовершенствовать программу и усложнить принятие решения. Например, если у преследуемого корабля осталось мало жизни, то он добивает его, а если он нашел, ближе и с еще меньшим здоровьем, то добить сначала слабейшего.
Кстати, в данной программе можно уменьшить количество действий и усовершенствовать алгоритмы. Попробуйте свои силы. Взять данную программу можно здесь.
Подводим итоги
Вот на таких кейсах я узнал, как Scratch дает возможность ученикам быстрее освоить множество реальных техник программирования. На нем можно рассказывать про работу критических секций, про обобщенные алгоритмы, про переменные и их области видимости, про создание собственных блоков и структурирование кода. А также на данном языке можно рассказывать про профессиональные навыки, например, рефакторинг.
Это лишь малая часть инструментария программиста, но она являет очень важной. А в Scratch это объяснить становится чуточку легче.