автордың кітабын онлайн тегін оқу Знакомьтесь, это Snap!. Блочная среда программирования мощнее Scratch
Денис Владимирович Голиков
Знакомьтесь, это Snap!
Блочная среда программирования мощнее Scratch
Шрифты предоставлены компанией «ПараТайп»
© Денис Владимирович Голиков, 2017
Книга знакомит с основами новейшего блочного языка программирования Snap! Этот язык настолько мощен, что используется не только в школах, но и в университетах США. Модификации Snap! используются для программирования Arduino, для моделирования многоагентных систем, графов и рисования сложных фигур.
12+
ISBN 978-5-4485-6644-8
Создано в интеллектуальной издательской системе Ridero
Оглавление
- Знакомьтесь, это Snap!
- Введение
- Описание Snap!
- Разработчики Snap!
- Основные отличия от Scratch
- Совместимость
- Основные понятия
- Об авторе
- Источники
- Знакомство с интерфейсом Snap!
- Элементы интерфейса
- Строка меню. Первая кнопка
- Project notes
- New
- Open
- Save и Save as
- Costumes…
- Sounds…
- Строка меню. Вторая кнопка
- Login…
- Signup…
- Reset Password…
- Строка меню. Третья кнопка
- Language…
- Zoom blocks…
- Stage size…
- Long form input dialog
- Plain prototype labels
- Input sliders
- Turbo mode
- Flat design
- Thread safe scripts
- Prefer smooth animations
- Inheritance support
- Строка меню. Кнопки над сценой
- Возврат к стандартному размеру сцены
- На весь экран
- Зеленый флажок
- Пауза
- Остановка проекта
- Кнопка добавить спрайт
- Кнопка нарисовать спрайт
- Свойства спрайта
- Стили вращения спрайта
- Переименование спрайта
- Возможность перемещения спрайта мышкой
- Закладка Scripts
- Закладка Costumes
- Закладка Sounds
- Управление сценой
- Переименование сцены
- Закладка Scripts
- Закладка Costumes
- Закладка Sounds
- Знакомство с блоками Snap!
- Синие блоки движения
- Фиолетовые блоки внешности
- Малиновые блоки звука
- Зелёные блоки пера
- Желтые блоки управления
- Голубые блоки сенсоров
- Зеленые блоки операторов
- Оранжевые блоки переменных
- Блоки Scratch 2.0 отсутствующие в Snap!
- Графический редактор
- Запуск графического редактора
- Интерфейс графического редактора
- Отличия от графического редактора Scratch 1.4
- Отличия от графического редактора Scratch 2.0
- Некоторые важные понятия Snap!
- Направление
- Выпадающий список
- Слои
- Центр спрайта
- Пронумерованные цвета и оттенки
- Графические эффекты
- Вложенные спрайты
- Меню правой кнопки мышки
- Создание пользовательских блоков
- Создание блока типа Command
- Создание блока типа Reporter
- Создание блока типа Predicate
- Создание блока рисующего треугольник
- Создание блока вырезающего первое слово из фразы
- Создание блока определяющего максимальное значение из введенного списка
- Создание блока рисующего звезду
- Создание блока for
- Дополнительные блоки
- label
- функция if
- for
- catch
- throw
- Функция catch
- throw с параметром
- if and pause
- ignore
- tell
- asc
- join words
- list to sentence
- sentence to list
- word to list
- list to word
- map over
- empty?
- keep items such that
- Combine with
- for each
Введение
Описание Snap!
Snap! — блочная среда программирования, разработанная на основе Scratch в Калифорнийском университете в Беркли (University of California at Berkeley).
Основным отличием данной среды программирования от Scratch являются расширенные возможности по построению собственных блоков, а также списки и функции первого класса. Эти мощные возможности позволяют использовать Snap! не только в начальной школе, но и для обучения старшеклассников и студентов.
Пример создания цикла
for.
Созданный блок
forможно использовать наравне с любым встроенным блоком.
Алонзо досчитает до пяти, а затем скажет: «Я иду тебя искать!»
Snap! запускается и работает непосредственно в браузере и не требует установки на компьютер пользователя. Он написан на JavaScript и может оказывать ограниченное влияние на компьютер, так что вы можете безопасно запускать проекты других пользователей.
Разработчики Snap!
Snap! был разработан Дженсом Монигом (Jens Mönig at MioSoft Corporation, now at SAP), совместно с Брайаном Харви (Brian Harvey at Berkeley), при помощи студентов Калифорнийского университета в Беркли.
Основные отличия от Scratch
Типы данных.
Основным отличием Snap! от Scratch являются типы данных первого класса.
Объектами первого класса называются элементы, которые могут быть присвоены переменной или элементу массива, переданы как параметр и возвращены из функции. Благодаря этому в Snap! появилась возможность создавать двумерные массивы.
Создание двумерного массива.
Двумерный массив.
Также в Snap! в отличие от Scratch функции являются объектами первого класса. Это позволяет передавать функцию как аргумент в другую функцию. В следующем примере мы передаем функции map как аргумент функцию умножить на 10, и функция map производит это действие со всем списком, переданным ей в качестве второго аргумента.
Пример использования функции.
Еще одним удивительным отличием является то, что спрайты, тоже являются объектами первого класса, и могут быть переданы в качестве аргументов.
Спрайт — объект первого класса.
А вот такое возможно в Scratch?
Один спрайт «думает» о другом спрайте.
Эти особенности Snap! позволяют познакомить учащихся с функциональным программированием в отличие от Scratch, который используется для знакомства с императивным программированием.
Медиаредакторы.
Графический редактор Snap! не является его сильной стороной и уступает по функционалу Scratch 2.0 и даже Scratch 1.4. В нем отсутствует векторный редактор, а в растровом отсутствует масштабирование, выделение, штамп и поворот.
Редактор звука в Snap! отсутствует полностью.
Я рекомендую импортировать в Snap! изображения и звуки, подготовленные во внешних онлайн реакторах, а в редакторе изображений лишь немного корректировать загруженные изображения.
Совместимость
Совместимость с браузерами.
Snap! может работать в следующих браузерах:
— Chrome, версия не ниже 43 (это рекомендуемый браузер для работы в среде Snap!)
— Safari версия не ниже 8.4;
— Firefox версия не ниже 38;
— Edge версия не ниже 12;
— Opera версия не ниже 32.
Совместимость со Scratch.
Проекты, созданные в Scratch, могут быть импортированы в Snap! с помощью следующего онлайн сервиса http://djdolphin.github.io/Snapin8r2/.
Проекты, созданные на Snap! могут быть сохранены в формате XML, а затем преобразованы в исполняемый EXE файл с помощью онлайн сервиса расположенного по адресу http://snapp.citilab.eu/.
Совместимость с внешними устройствами.
Snap! может быть использован со следующими внешними устройствами, подключаемыми к компьютеру:
— Orbotix Sphero;
— Lego NXT;
— Nintendo Wiimote;
— Finch and Hummingbird robots;
— Parallax S2 robot;
— LEAP Motion;
— Speech synthesis by Connor Hudson;
— Arduino;
— Fischertechnik ROBOTICS TXT Controller;
— Raspberry Pi.
Основные понятия
Создаваемый проект состоит из отдельных спрайтов, которые перемещаются по сцене. Поведение каждого спрайта может быть запрограммировано с помощью скриптов, которых может быть несколько.
Скрипты собираются из отдельных блоков. Наверху каждого скрипта должен быть расположен блок с овальной шапкой. Этот блок содержит условие, при выполнении которого он начнет выполняться. Выполнение скрипта начинается сверху вниз, все блоки выполняются поочередно. Линейное выполнение программы может быть изменено с помощью блоков условия или цикла. Все скрипты проекта постоянно проверяют условия в своих шапках и при их выполнении запускаются одновременно.
Например, один скрипт перемещает спрайт, второй проигрывает звук, а третий изменяет его размер.
Все три скрипта выполняются одновременно.
Помимо прямоугольных блоков существуют овальные и шестиугольные блоки. Овальные блоки являются встроенными переменными, функциями или операторами. Овальные блоки вставляются в окошки других блоков.
Пример использования овального блока.
Шестиугольные блоки — это логические (булевы) переменные, логические операторы или логические выражения (предикаты). Они вставляются в окошки шестиугольной формы.
Пример использования предиката.
Об авторе
Голиков Денис Владимирович.
Окончил МЭИ по специальности промышленная электроника. Автор нескольких учебников по программированию на Scratch.
Сайт scratch4russia.com
Facebook https://www.facebook.com/ScratchBook4u
Страница книг https://www.facebook.com/scratch4you/
Вконтакте https://vk.com/scratch.book
e-mail scratch.book@ya.ru
Источники
При создании книги были использованы материалы следующих сайтов:
Знакомство с интерфейсом Snap!
Запуск Snap!
Перейдите на сайт http://snap.berkeley.edu/, запустите Snap!
Кнопка запуска Snap!
Интерфейс Snap!
Элементы интерфейса
Интерфейс очень похож на интерфейс Scratch 1.4.
По умолчанию в Snap! установлен английский язык интерфейса. Однако его можно переключить на один из 38 языков.
Раздел меню для переключения языка.
Я не советую переключать его на русский, так как вся литература, по Snap! на английском языке.
Строка меню. Первая кнопка
Первая кнопка меню.
Первый раздел строки меню содержит следующие команды:
Project notes
Текстовое описание проекта.
New
Создать новый проект.
Open
Открытие проекта. Проекты могут быть сохранены как на локальном компьютере (кнопка Browser), так и в облаке (кнопка Cloud). При сохранении файлов на локальном компьютере доступ к ним возможен только из Snap! Для сохранения в облаке нужно зарегистрироваться.
Окно открытия проекта.
Также есть возможность загрузить готовые примеры (кнопка Examples). Кнопка Share позволяет поделиться проектом. «Расшаренный» проект будет выделен жирным шрифтом. Для того чтобы им поделится, надо скопировать ссылку на проект вида http://snap.berkeley.edu/snapsource/snap.html#present:Username=***ProjectName=*** из строки браузера и отправить эту ссылку.
Save и Save as
Окно сохранения проекта.
Import
Этот раздел меню позволяет импортировать в проект следующие объекты:
— проект, экспортированный в файл формата XML;
— спрайт, экспортированный в файл формата XML;
— блок, экспортированный в файл формата XML;
— проект из Scratch 1.4 в формате SB;
— проект из Scratch 2.0 в формате SB2;
— проект из BYOB 3.1
— изображения (костюмы спрайтов, фоны сцены) в любом формате, поддерживаемом Вашим браузером.
— звуки в любом формате, поддерживаемом Вашим браузером.
Также для импорта любого файла в Snap! достаточно перетащить его мышкой в окно Snap! в браузере.
Export project…
Экспорт проекта в файл XML.
Export summary…
Экспорт сводной информации о проекте в виде html страницы.
Export blocks…
Этот раздел меню появляется только в случае создания в проекте собственных блоков или импорта блоков из библиотек. Он позволяет сохранить созданные блоки в файл формата XML.
Окно экспорта блоков.
Unused blocks…
Этот раздел меню появляется только в случае создания в проекте собственных блоков или импорта блоков из библиотек. Он позволяет увидеть неиспользованные блоки чтобы удалить их и уменьшить размер готового проекта.
Окно удаления неиспользуемых блоков.
Import tools
Этот раздел позволяет импортировать большое количество полезных блоков созданных на Snap! Подробнее об этих блоках будет рассказано в следующих главах.
Snap! можно сразу запустить с автоматической загрузкой указанных блоков. Для этого на странице http://snap.berkeley.edu/ есть кнопка http://snap.berkeley.edu/init/.
Кнопка запуска Snap! с автоматической загрузкой дополнительных блоков.
Libraries…
Импорт библиотек, расширяющих возможности Snap! и содержащих дополнительные полезные блоки, созданные на Snap!
Импорт библиотек.
Costumes…
Импорт стандартных костюмов спрайтов.
Импорт стандартных костюмов.
Sounds…
Импорт стандартных звуков.
Импорт стандартных звуков.
Строка меню. Вторая кнопка
Вторая кнопка меню.
Login…
Вход в облачный сервис для зарегистрированных пользователей.
Вход в облачный сервис.
Signup…
Регистрация нового пользователя облачного сервиса.
Регистрация в облачном сервисе.
Reset Password…
Сброс пароля зарегистрированного пользователя.
