Scratch что можно сделать

Программирование мини-игры в программе Скретч

На свете существуют множество языков программирования, но программирование для детей проще начинать с программ, которые предполагают создание игровой ситуации с героями или объектами, которые двигаются, меняются или взаимодействуют. К таким программам относятся ПервоЛого и ЛогоМиры, а также программа Скретч (Scratch), бесплатно распространяемая для любой операционной системы. Сайт находится по адресу http://scratch.mit.edu. С января 2019 года разработчики выпустили новую версию 2.0. Она немного отличается от предыдущих версий.

В основе Scratch лежит графический язык программирования. Для того чтобы создать скрипт (программу для каждого объекта) нужно просто совместить графические блоки вместе, перетаскивая готовые блоки из левого поля в поле создания скрипта (программы).

Блоки разбиты на несколько типов:

Блок «Перо» в новой версии надо добавлять из меню «дополнительные блоки».

На уроках информатики учащиеся постепенно знакомятся с командами различных блоков и их использованием. Это позволяет на одном из уроков перейти к реализации проекта по созданию мини-игры.

Во многих компьютерных играх игровое поле представляет собой площадку, разбитую на квадраты (как шахматная доска), и требуется собрать какие-либо предметы – это могут быть яблоки, монеты, звезды или что-то другое. Для краткости будем называть эту игру «Собери» (презентация).

Для создания игры нам необходимо проделать несколько этапов:

1 этап. Создание игрового поля

Для создания игрового поля мы должны войти в меню «Сцена», вкладка «Фоны» и с помощью инструментов для рисования «прямоугольник» и «линия» создать поле 8х8 клеток. (рис. 1). Такого размера вполне достаточно для создания первой игры. При желании можно добавить какой-либо текст (кнопка Т).

Scratch что можно сделать. 1. Scratch что можно сделать фото. Scratch что можно сделать-1. картинка Scratch что можно сделать. картинка 1

Рис. 1. Создание игрового поля.

2 этап. Расстановка игровых объектов

На втором этапе мы расставляем объекты разных видов (рис. 2 и 3). Для этого используем добавление спрайтов из библиотеки. Объекты в нашей игре будут двух видов – те, которые по условию надо собрать (например, яблоки), и те, которые будут являться препятствиями. Количество объектов можно задавать самостоятельно. Рекомендую размер объектов уменьшить до 50.

Scratch что можно сделать. 2. Scratch что можно сделать фото. Scratch что можно сделать-2. картинка Scratch что можно сделать. картинка 2

Рис. 2. Добавление объектов на игровое поле.

Scratch что можно сделать. 3. Scratch что можно сделать фото. Scratch что можно сделать-3. картинка Scratch что можно сделать. картинка 3

Рис. 3. Добавление объектов-препятствий на игровое поле.

3 этап. Программирование «героя»

В качестве героя можно оставить исходного спрайта-котенка под именем «Спрайт1». При желании можно выбрать (назначить) «героем» любого другого. Имя спрайта также можно изменить.

В начале игры наш герой должен встать в исходную точку, которую мы определяем с помощью координат. Поэтому команда должна выглядеть так:

Scratch что можно сделать. 4. Scratch что можно сделать фото. Scratch что можно сделать-4. картинка Scratch что можно сделать. картинка 4

Рис. 4. Задание начальной координаты для спрайта.

При необходимости можно задать и начальное направление – например, «повернуться в направлении 90».

Далее для того, чтобы наш спрайт ходил сразу по клеткам, мы должны запрограммировать кнопки управления его передвижением (стрелки вверх, влево, вправо, вниз), которые удобно расположены на клавиатуре.

Команды для кнопок должны выглядеть следующим образом:

Scratch что можно сделать. 5. Scratch что можно сделать фото. Scratch что можно сделать-5. картинка Scratch что можно сделать. картинка 5

Рис. 5. Программирование управляющих кнопок (стрéлок).

Этап 4. Программирование собираемых объектов

Для того, чтобы любой объект реагировал на прохождение «героя» и мог менять свою форму или исчезать, необходимо, чтобы он совершал небольшое движение. Это можно задать двумя способами:

Scratch что можно сделать. 6. Scratch что можно сделать фото. Scratch что можно сделать-6. картинка Scratch что можно сделать. картинка 6

Рис. 6. Команда для собираемых объектов.

Чтобы объекты можно было «восстановить» в начале игры задаем дополнительную команду:

Scratch что можно сделать. 7. Scratch что можно сделать фото. Scratch что можно сделать-7. картинка Scratch что можно сделать. картинка 7

Рис.7. Команда для «восстановления» объектов.

Эти команды надо задать для каждого собираемого объекта (яблока, монеты или звезды).

Этап 5. Программирование препятствий

На игровом поле должны также присутствовать объекты, которые будут усложнять игру, т.е. являться препятствиями. Чтобы они могли взаимодействовать с героем, когда он попадает на соответствующую клетку, необходимо им также задать небольшое движение (аналогично собираемым объектам).

Взаимодействие с героем можно задавать по-разному: препятствие может «взрываться», «переворачиваться» (т.е. изменить свой костюм), выдавать сообщение «Ты проиграл» или «Здесь ходить нельзя» и т.д. Можно задать команду, которая будет перемещать героя в начало игры, т.е. в исходную точку. Варианты могут придумать сами дети. В начале игры также надо вернуть этим объектам исходный костюм.

Scratch что можно сделать. 8. Scratch что можно сделать фото. Scratch что можно сделать-8. картинка Scratch что можно сделать. картинка 8

Scratch что можно сделать. 9. Scratch что можно сделать фото. Scratch что можно сделать-9. картинка Scratch что можно сделать. картинка 9

Рис. 8, 9. Программирование препятствий.

Этап 6. Программирование кнопки финиш

По желанию можно создать кнопку «Финиш» и поместить ее в конце игрового поля. Кнопка «Финиш» программируется аналогично предыдущим объектам. Отличие будет в тех командах, которые будут выполняться при реакции на прохождение Спрайта. Например, можно задать «Говорить «Ты победил!» или «Переходи на второй уровень» и при этом кнопка может менять цвет или мигать и т.д. Здесь дети могут использовать свою фантазию и желание.

Scratch что можно сделать. 10. Scratch что можно сделать фото. Scratch что можно сделать-10. картинка Scratch что можно сделать. картинка 10

Рис. 10. Изменение кнопки «Финиш».

Scratch что можно сделать. 11. Scratch что можно сделать фото. Scratch что можно сделать-11. картинка Scratch что можно сделать. картинка 11

Рис. 11. Программа для кнопки «Финиш».

Заключение

Подобную игру можно создать за 1 урок или одно занятие. Практика показывает, что подобные задания дети выполняют с удовольствием и могут проявить фантазию или использовать более сложный набор команд для создания подобной игровой ситуации. При этом ученики не замечают, как знакомятся с программированием и таким важным моментом, как отладка программы, которая требует усидчивости, терпения и умения видеть и исправлять ошибки в своей программе.

Scratch действительно относится к группе мультимедийных развивающих сред программирования.

Источник

Scratch для «продвинутых»

Клонирование и переменные в Scratch

Моему ученику нравилась игра — «Зомби против растений». И ему было интересно самому запрограммировать её. Давайте вспомним как данная игра работает? С правой стороны у нас есть шеренга растений, которая расстреливает приближающихся зомби.

Есть множество решений данной задачи, но на мой взгляд более элегантное решение — задействовать минимально возможное количество спрайтов, т.е. использовать клонирование.

Как сделать так, чтобы у каждого отдельного клона был собственный уровень жизни? Что выбрать переменные или списки? Сделали попытку использовать списки, но после более детальной проработки поняли, что данная структура данных не помогает решить проблему. У переменных и списков, в Scratch есть 2 типа видимости для каждого типа данных — это «для всех спрайтов» или «только для этого спрайта». Пришлось проверять область видимости. Начали мы с переменных.

Дойдя до рабочего варианта переменной с областью видимостью «только для этого спрайта». В классических языках программирования такой тип видимости называют — локальным или приватным в зависимости от контекста.

Оказывается, что если эта переменная с данной областью видимости используется в клоне, то в клоне создается экземпляр переменной, принадлежащий конкретному клону и который используется для внутренних вычислений/работы клона. В нашем случае, у каждого клона есть своя «жизнь». Если стало интересно, то советую обратиться к справочнику. А вот картинка, которая показывает, как спрайты или клоны работают с переменными разных типов видимости.

Scratch что можно сделать. image loader. Scratch что можно сделать фото. Scratch что можно сделать-image loader. картинка Scratch что можно сделать. картинка image loader
Переменная с областью видимости «для всех спрайтов» (рисунок слева) — одна на всех. Кстати, здесь вы можете с детьми посмотреть работу с критическими секциями и что такое гонка за ресурс. А если область видимости переменной — «только для этого спрайта», то у спрайта и у его клонов появляется собственная переменная с тем же именем, с которой они работают (рисунок с права). И клоны не имеют доступа к переменной оригинала и переменной другого клона.
Это стало неожиданным и приятным открытием свойств Scratch для создания подобных алгоритмов.

ВАЖНО: Переменная — это очень мощный инструмент настоящего программиста, поэтому я сразу учу детей правильному именованию переменных, так как этот навык поможет им в проектах разной сложности.

Имена объектов как их идентификаторы

ВАЖНО: все переменные с зоной видимостью «только для этого спрайта».

Данный инструмент для меня стал совсем неожиданным. Давайте начнем с истории о том, как мы с учеником наткнулись на данную особенность языка. Мой ученик решил, создать игру с «искусственным интеллектом». Игра представляет звездные войны на космических кораблях и у игрока есть возможность управлять одним кораблем, в то время как противники гоняются за вами и за друг другом. Чтобы они могли преследовать вас или друг друга, им нужно как-то принимать решение о том, кого преследовать. Данную задачу можно решить в лоб и задать очередность преследования кораблей, но игра потеряет свою интеллектуальность и быстро наскучит. Поэтому ученик решил настроить интеллект таким образом, чтобы корабли с интеллектом преследовали ближайшего противника. Давайте посмотрим, как он начал решать данную задачу.

На мой взгляд хорошее решение для создания быстрого прототипа. Но какие ограничения здесь есть? Первое, усложнение кода по мере добавления новых кораблей. Следовательно, сложность кода повышается и не исключены мутации кода из-за усложнения. Время поиска ошибки и отладки алгоритма будет расти. И конечно, никто не отменял такую прикольную метрику, как старение кода (advance level SW Development). Что же делать? А делать необходимо следующее, нужно сделать обобщеный алгоритм, который будет динамично приспосабливаться к увеличению или уменьшению количества кораблей.

Для данного алгоритма нам и понадобиться свойство языка — имя как идентификатор объекта. Пришло время больших изменений и здесь вы, как учитель, можете рассказать про такое явление как рефакторинг. Это последовательное изменение кода, улучшение его структуры и его оптимизация. А главное, чтобы каждое изменение не ломало работу программы, и объем изменений тоже должен очень аккуратно подобран. Слишком много изменений — плохо, слишком мало — долго. Сформированный навык рефакторинга даст преимущество и эффективность работы программиста. Но для формирования навыка нужно работать головой, а не просто тыкаться. У меня получилось сделать 4 изменения в первоначальной программе и результат не изменился.

Заметьте, что я еще не удалил блоки, а оставил их. Зачем? Потому, что если что-то пойдет не так, мы можем вернуть предыдущий вариант, начав все заново. Но как только я проверю правильность выполнения обновленного скрипта, я сразу же их удалю, чтобы не отвлекаться на них в последующем.

Заметили? Сейчас в блоке «повернуться к …» стоит переменная и эта штука работает. Т.е. мы минимальными усилиями проверили, что данный подход работает. Это просто круто. Теперь мы можем начать писать алгоритмы, которые позволят определять объект преследования ближайшего корабля.

Что нам пригодится? Это из структур данных — это переменные и списки. Из алгоритмов — это нахождение минимального числа (расстояния) в списке. Еще нам необходим алгоритм, который определит имя объекта для преследования по минимальному расстоянию.

Сейчас будет написано много кода. Но для того, чтобы потом не захлебнуться и не запутаться в куче скриптов, нам необходимо использовать еще одну классную функцию, а именно создание собственных блоков. Эта функция очень мощная, но ее редко используют школьники, да и некоторые программисты, а ведь она позволяет создать понятный с первого прочтения алгоритм программы. Кстати, можете почитать про приемы создания понятного кода в книге Мартина Фаулера «Рефакторинг. Улучшение существующего кода»

Как и перед любым масштабным строительством нам необходимо все спланировать. Давайте спланируем в каком порядке будем разрабатывать блоки:

Для того, чтобы создать обобщенный алгоритм нам чем-то нужно пожертвовать, например, оригинальными именами спрайтов, придется их стандартизировать и получим следующий расклад.

И теперь мы готовы описать 1 часть программы. Все пишем для 1-ого корабля. Запускаем отдельно данный скрипт и смотрим результат. Поехали!

Если мы добавим новый корабль, нам нужно изменить в данном алгоритме лишь одну циферку. Клево? Клево!

Погнали дальше. А давайте научим его 2 алгоритму. Смотрим, что получилось. Это сразу конечный результат со вспомогательными функциями.

Ура! Работает. Проверить это можно следующим образом, должен быть обязательно 0 одним из значений в списке расстояний. Если у вас это не так, ищите ошибку.

Едем дальше! Поиск минимального расстояния. Заметили, что расстояние всегда положительно. И всегда будет минимальное число — 0. Ай-я-яй! Вывод — искать минимум, но не ноль. Можете попробовать свои силы и оптимизировать код самостоятельно, чтобы не делать расчет расстояния от корабля 1 до корабля 1 (это не опечатка).

Обучаем спрайт новой функции и получаем.

Не забываем проверять! Для этого можно даже остановить игру и запустить отдельный скрипт.

Мы написали все, что необходимо, теперь главное правильно использовать данные функции.

Если у вас все работает правильно, то вы должны увидеть следующее:

Заметили, что корабль с «искусственным интеллектом» разрывается между разными противниками. Вы можете усовершенствовать программу и усложнить принятие решения. Например, если у преследуемого корабля осталось мало жизни, то он добивает его, а если он нашел, ближе и с еще меньшим здоровьем, то добить сначала слабейшего.

Кстати, в данной программе можно уменьшить количество действий и усовершенствовать алгоритмы. Попробуйте свои силы. Взять данную программу можно здесь.

Подводим итоги

Вот на таких кейсах я узнал, как Scratch дает возможность ученикам быстрее освоить множество реальных техник программирования. На нем можно рассказывать про работу критических секций, про обобщенные алгоритмы, про переменные и их области видимости, про создание собственных блоков и структурирование кода. А также на данном языке можно рассказывать про профессиональные навыки, например, рефакторинг.

Это лишь малая часть инструментария программиста, но она являет очень важной. А в Scratch это объяснить становится чуточку легче.

Источник

Scratch – дверь в мир программирования

Scratch – это язык программирования, который используется для знакомства детей с данной сферой деятельности. Многие родители считают, что Scratch не нужен, так как это, якобы, ненастоящий язык и лучше ребенку начинать с Python или JavaScript. Увы, такой подход скорее вреден, чем полезен, ведь Scratch как раз и разработан, чтобы в понятной ребенку форме донести основы программирования и дать ему возможность воплотить свои идеи в жизнь.

Не менее важным будет вопрос о том, как постигать данный язык – самостоятельно или воспользоваться курсами. В нашей статье мы расскажем, чем полезен Scratch для детей, что в нем можно сделать, а также как лучше ребенку его осваивать.

Описание языка Scratch

Scratch — это универсальный язык программирования, позволяющий помимо прочего, например, рисовать картины и создавать музыку. Данная особенность является весомой причиной обучать ему детей. К тому же, это еще и полноценный инструмент для программистов.

Среда разработки дает возможность детям редактировать аудиофайлы и монтировать небольшие, но полноценные видеоролики. В новые версии языка создатели обещают добавить функционал для создания собственных мобильных приложений.

Scratch что можно сделать. shutterstock 1767364400. Scratch что можно сделать фото. Scratch что можно сделать-shutterstock 1767364400. картинка Scratch что можно сделать. картинка shutterstock 1767364400Описание языка Scratch

Таким образом, Scratch сможет заменить собой сразу несколько программ, ориентированных исключительно на диджитал-разработку. Облачная технология позволяет большому числу пользователей взаимодействовать друг с другом, непрерывно обмениваться знаниями.

Механика программирования на Scratch

Данная среда разработки изначально ориентирована на изучение детьми, поэтому она отличается интуитивной понятностью и дружелюбностью.

Интерфейс условно поделен на 3 функциональных блока:

Перед детьми, начавшими изучать язык, сперва стоит задача перемещать Скрэтча по экрану, обучать его различным навыкам. В процессе этого кот постепенно начинает разговаривать и выполнять некоторые команды. Дети в итоге могут создать целый анимационный фильм с участием Скрэтча и его друзей.

Scratch что можно сделать. shutterstock 1573746187. Scratch что можно сделать фото. Scratch что можно сделать-shutterstock 1573746187. картинка Scratch что можно сделать. картинка shutterstock 1573746187

Scratch что можно сделать. brains img. Scratch что можно сделать фото. Scratch что можно сделать-brains img. картинка Scratch что можно сделать. картинка brains img

В дальнейшем ребенок уже самостоятельно программирует игры, придумывая для них истории и выбирая героев. Готовая программа будет служить предметом гордости перед одноклассниками и друзьями.

Преимущества занятий Scratch для детей

Эта среда разработки предназначена исключительно для учебных целей и настоящими программистами не используется. Тем не менее, она служит базой для изучения уже профессиональных языков, прививает детям навыки составления алгоритмов в игровой форме.

Сложность на самом первом этапе обучения не нужна — в конце концов, существуют учебники по программированию, позволяющие изучать язык и без наличия компьютера. Взрослый человек осилит синтаксис нового для него языка за 2-3 дня упорной умственной работы. Ребенку же для этого может потребоваться несколько месяцев. Причем, не факт, что он твердо решит стать программистом.

Ваш Путь в IT начинается здесь

Именно для того, чтобы ребенок почувствовал себя в роли программиста, проверил свои интересы, существуют учебные среды разработки, каковой является в том числе и Scratch. Программирование для детей в них подается в виде увлекательной игры. Научившись создавать простейшие программы и имея дальнейшую мотивацию обучаться в этом направлении, ребенок уже захочет переходить на взрослый уровень разработки.

Нюансы ScratchJr

Scratch Junior является ответвлением от основной среды разработки, ориентированным на детей от 5 лет. Сначала разработчики создали соответствующее приложение для iPhone, Android и Kindle, а затем и программу для персональных компьютеров. В первом случае роль главного героя играл кот, во втором же случае взамен появился инопланетянин Тик.

Принцип работы в Scratch Jr подобен сборке конструктора Lego. Ребенок перемещает блоки, соединяя их в требуемом порядке. Правильно размещенные элементы примагничиваются друг к другу.

Все элементы приложения сгруппированы в функциональные блоки: движения, управления, внешнего вида, окончания и запуска. Каждый блок имеет вид иконки, обозначающей конкретную функцию и понятной каждому ребенку.

Scratch что можно сделать. shutterstock 2036186216. Scratch что можно сделать фото. Scratch что можно сделать-shutterstock 2036186216. картинка Scratch что можно сделать. картинка shutterstock 2036186216Нюансы ScratchJr

При использовании среды разработки детям даже необязательно уметь читать и считать. Однако эти навыки помогут создавать, например, программу для отправки сообщений или для перемещения объекта на определенное число клеток.

Спрайты для программирования можно выбирать из весьма обширной встроенной библиотеки. Коллекция также содержит большой выбор ландшафтов.

Добавление собственных изображений здесь не доступно, однако имеется встроенный простейший графический редактор, позволяющий с нуля создать нового персонажа.

Формально Scratch Jr объектно-ориентированным языком программирования не является. Тем не менее, здесь дети сталкиваются именно с объектной моделью. То есть, программа состоит из неких объектов (спрайтов), взаимодействующих друг с другом. Для этого необходимо давать спрайтам соответствующие команды.

Варианты проектов на Scratch

Множество начинающих программистов пользуются данной средой в домашних условиях, в школьных учреждениях, в музеях и библиотеках. Так, Гарвард предлагает к изучению обширный банк онлайн-ресурсов, позволяющий создавать проекты как на детском, так и на профессиональном уровнях. В сети также имеется русскоязычное сообщество любителей Scratch.

Ниже перечислим студии, на которые рекомендуется обратить внимание всем желающим изучить этот язык.

Scratch что можно сделать. career man. Scratch что можно сделать фото. Scratch что можно сделать-career man. картинка Scratch что можно сделать. картинка career man

Мы в GeekBrains каждый день обучаем людей новым профессиям и точно знаем, с какими трудностями они сталкиваются. Вместе с экспертами по построению карьеры поможем определиться с новой профессией, узнать, с чего начать, и преодолеть страх изменений.

Карьерная мастерская это:

Уже 50 000 человек прошли мастерскую и сделали шаг к новой профессии!

Запишитесь на бесплатный курс и станьте ближе к новой карьере:

Зарегистрироваться и получить подарки

Помимо этого среда включает в себя множество других возможностей и студий. Ссылки на них можно находить в открытом доступе.

Топ-5 книг для изучения Scratch

Scratch что можно сделать. shutterstock 583669831 1. Scratch что можно сделать фото. Scratch что можно сделать-shutterstock 583669831 1. картинка Scratch что можно сделать. картинка shutterstock 583669831 1

Scratch что можно сделать. brains img. Scratch что можно сделать фото. Scratch что можно сделать-brains img. картинка Scratch что можно сделать. картинка brains img

Обучение Scratch для детей

Для начала изучения этого языка существуют специальные базовые курсы. Они позволяют детям попробовать себя в роли программиста и, возможно, сделать первый шаг на пути к востребованной профессии.

План программы обычно полностью состоит из практических занятий с домашними заданиями после каждого урока и постоянным взаимодействием с преподавателями. По завершению обучения ученики должны оформить и защитить финальный проект.

Такие курсы подходят детям:

Курс по программированию на Scratch будет полезен по нескольким причинам.

Для примера возьмем курсы GeekSchool. Их отличительные особенности:

Scratch что можно сделать. shutterstock 1766613029. Scratch что можно сделать фото. Scratch что можно сделать-shutterstock 1766613029. картинка Scratch что можно сделать. картинка shutterstock 1766613029

Scratch что можно сделать. brains img. Scratch что можно сделать фото. Scratch что можно сделать-brains img. картинка Scratch что можно сделать. картинка brains img

Процесс обучения языкам программирования в наше время становится все более простым и увлекательным. Помимо традиционных средств и инструментов, используются также ресурсы Интернета, исключением здесь не является и среда Scratch. Программирование на этом языке будет легким и увлекательным для вашего ребенка, а в будущем станет фундаментом для новой профессии, если вы последуете всем советам и рекомендациям из этой статьи.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *