как создать windows 10 в scratch
Scratch для «продвинутых»
Клонирование и переменные в Scratch
Моему ученику нравилась игра — «Зомби против растений». И ему было интересно самому запрограммировать её. Давайте вспомним как данная игра работает? С правой стороны у нас есть шеренга растений, которая расстреливает приближающихся зомби.
Есть множество решений данной задачи, но на мой взгляд более элегантное решение — задействовать минимально возможное количество спрайтов, т.е. использовать клонирование.
Как сделать так, чтобы у каждого отдельного клона был собственный уровень жизни? Что выбрать переменные или списки? Сделали попытку использовать списки, но после более детальной проработки поняли, что данная структура данных не помогает решить проблему. У переменных и списков, в Scratch есть 2 типа видимости для каждого типа данных — это «для всех спрайтов» или «только для этого спрайта». Пришлось проверять область видимости. Начали мы с переменных.
Дойдя до рабочего варианта переменной с областью видимостью «только для этого спрайта». В классических языках программирования такой тип видимости называют — локальным или приватным в зависимости от контекста.
Оказывается, что если эта переменная с данной областью видимости используется в клоне, то в клоне создается экземпляр переменной, принадлежащий конкретному клону и который используется для внутренних вычислений/работы клона. В нашем случае, у каждого клона есть своя «жизнь». Если стало интересно, то советую обратиться к справочнику. А вот картинка, которая показывает, как спрайты или клоны работают с переменными разных типов видимости.
Переменная с областью видимости «для всех спрайтов» (рисунок слева) — одна на всех. Кстати, здесь вы можете с детьми посмотреть работу с критическими секциями и что такое гонка за ресурс. А если область видимости переменной — «только для этого спрайта», то у спрайта и у его клонов появляется собственная переменная с тем же именем, с которой они работают (рисунок с права). И клоны не имеют доступа к переменной оригинала и переменной другого клона.
Это стало неожиданным и приятным открытием свойств Scratch для создания подобных алгоритмов.
ВАЖНО: Переменная — это очень мощный инструмент настоящего программиста, поэтому я сразу учу детей правильному именованию переменных, так как этот навык поможет им в проектах разной сложности.
Имена объектов как их идентификаторы
ВАЖНО: все переменные с зоной видимостью «только для этого спрайта».
Данный инструмент для меня стал совсем неожиданным. Давайте начнем с истории о том, как мы с учеником наткнулись на данную особенность языка. Мой ученик решил, создать игру с «искусственным интеллектом». Игра представляет звездные войны на космических кораблях и у игрока есть возможность управлять одним кораблем, в то время как противники гоняются за вами и за друг другом. Чтобы они могли преследовать вас или друг друга, им нужно как-то принимать решение о том, кого преследовать. Данную задачу можно решить в лоб и задать очередность преследования кораблей, но игра потеряет свою интеллектуальность и быстро наскучит. Поэтому ученик решил настроить интеллект таким образом, чтобы корабли с интеллектом преследовали ближайшего противника. Давайте посмотрим, как он начал решать данную задачу.
На мой взгляд хорошее решение для создания быстрого прототипа. Но какие ограничения здесь есть? Первое, усложнение кода по мере добавления новых кораблей. Следовательно, сложность кода повышается и не исключены мутации кода из-за усложнения. Время поиска ошибки и отладки алгоритма будет расти. И конечно, никто не отменял такую прикольную метрику, как старение кода (advance level SW Development). Что же делать? А делать необходимо следующее, нужно сделать обобщеный алгоритм, который будет динамично приспосабливаться к увеличению или уменьшению количества кораблей.
Для данного алгоритма нам и понадобиться свойство языка — имя как идентификатор объекта. Пришло время больших изменений и здесь вы, как учитель, можете рассказать про такое явление как рефакторинг. Это последовательное изменение кода, улучшение его структуры и его оптимизация. А главное, чтобы каждое изменение не ломало работу программы, и объем изменений тоже должен очень аккуратно подобран. Слишком много изменений — плохо, слишком мало — долго. Сформированный навык рефакторинга даст преимущество и эффективность работы программиста. Но для формирования навыка нужно работать головой, а не просто тыкаться. У меня получилось сделать 4 изменения в первоначальной программе и результат не изменился.
Заметьте, что я еще не удалил блоки, а оставил их. Зачем? Потому, что если что-то пойдет не так, мы можем вернуть предыдущий вариант, начав все заново. Но как только я проверю правильность выполнения обновленного скрипта, я сразу же их удалю, чтобы не отвлекаться на них в последующем.
Заметили? Сейчас в блоке «повернуться к …» стоит переменная и эта штука работает. Т.е. мы минимальными усилиями проверили, что данный подход работает. Это просто круто. Теперь мы можем начать писать алгоритмы, которые позволят определять объект преследования ближайшего корабля.
Что нам пригодится? Это из структур данных — это переменные и списки. Из алгоритмов — это нахождение минимального числа (расстояния) в списке. Еще нам необходим алгоритм, который определит имя объекта для преследования по минимальному расстоянию.
Сейчас будет написано много кода. Но для того, чтобы потом не захлебнуться и не запутаться в куче скриптов, нам необходимо использовать еще одну классную функцию, а именно создание собственных блоков. Эта функция очень мощная, но ее редко используют школьники, да и некоторые программисты, а ведь она позволяет создать понятный с первого прочтения алгоритм программы. Кстати, можете почитать про приемы создания понятного кода в книге Мартина Фаулера «Рефакторинг. Улучшение существующего кода»
Как и перед любым масштабным строительством нам необходимо все спланировать. Давайте спланируем в каком порядке будем разрабатывать блоки:
Для того, чтобы создать обобщенный алгоритм нам чем-то нужно пожертвовать, например, оригинальными именами спрайтов, придется их стандартизировать и получим следующий расклад.
И теперь мы готовы описать 1 часть программы. Все пишем для 1-ого корабля. Запускаем отдельно данный скрипт и смотрим результат. Поехали!
Если мы добавим новый корабль, нам нужно изменить в данном алгоритме лишь одну циферку. Клево? Клево!
Погнали дальше. А давайте научим его 2 алгоритму. Смотрим, что получилось. Это сразу конечный результат со вспомогательными функциями.
Ура! Работает. Проверить это можно следующим образом, должен быть обязательно 0 одним из значений в списке расстояний. Если у вас это не так, ищите ошибку.
Едем дальше! Поиск минимального расстояния. Заметили, что расстояние всегда положительно. И всегда будет минимальное число — 0. Ай-я-яй! Вывод — искать минимум, но не ноль. Можете попробовать свои силы и оптимизировать код самостоятельно, чтобы не делать расчет расстояния от корабля 1 до корабля 1 (это не опечатка).
Обучаем спрайт новой функции и получаем.
Не забываем проверять! Для этого можно даже остановить игру и запустить отдельный скрипт.
Мы написали все, что необходимо, теперь главное правильно использовать данные функции.
Если у вас все работает правильно, то вы должны увидеть следующее:
Заметили, что корабль с «искусственным интеллектом» разрывается между разными противниками. Вы можете усовершенствовать программу и усложнить принятие решения. Например, если у преследуемого корабля осталось мало жизни, то он добивает его, а если он нашел, ближе и с еще меньшим здоровьем, то добить сначала слабейшего.
Кстати, в данной программе можно уменьшить количество действий и усовершенствовать алгоритмы. Попробуйте свои силы. Взять данную программу можно здесь.
Подводим итоги
Вот на таких кейсах я узнал, как Scratch дает возможность ученикам быстрее освоить множество реальных техник программирования. На нем можно рассказывать про работу критических секций, про обобщенные алгоритмы, про переменные и их области видимости, про создание собственных блоков и структурирование кода. А также на данном языке можно рассказывать про профессиональные навыки, например, рефакторинг.
Это лишь малая часть инструментария программиста, но она являет очень важной. А в Scratch это объяснить становится чуточку легче.
Как создать игру Among Us на Scratch. Уроки программирования для детей
Авторизуйтесь
Как создать игру Among Us на Scratch. Уроки программирования для детей
IT-сфера давно стала неотъемлемой частью жизни не только взрослых, но и детей. С ранних лет они учатся разрабатывать самые простые программы и игры, а помогают им в этом специальные среды программирования.
Сегодня существует огромное количество сред, но наибольшей популярностью пользуется Scratch. Она разработана специально для детей и начинающих программистов. Среда Scratch отличается простотой и широким набором функций, которые помогают делать первые шаги в программировании.
Работать в Scratch можно уже с 8 лет. Процесс программирования напоминает сборку конструктора LEGO. Все команды похожи на блоки, которые перемещаются и примагничиваются один к одному. Блочный код позволяет создавать персонажей, управлять ими, добавлять звук, обмениваться сообщениями и выполнять огромное количество других операций.
1 октября – 30 ноября, Онлайн, Беcплатно
Scratch знакомит детей с азами программирования. Кроме того, он развивает логическое мышление, учит решать сложные задачи и находить ответы на самые сложные вопросы.
Scratch — это онлайн-среда, то есть вам не нужно устанавливать на свой компьютер никакие программы и приложения. Достаточно открыть браузер, зайти на официальный сайт и зарегистрировать там личный кабинет. Здесь вы можете не только создавать, но и публиковать свои игры, чтобы в них могли сыграть и другие пользователи.
Главные особенности Scratch
Чем привлекает пользователей платформа? Во-первых, это интуитивно понятный интерфейс. Даже неопытный пользователь сможет освоить её в самые сжатые сроки.
Во-вторых, красочный дизайн. Он вдохновляет самых юных программистов создавать свои проекты и настраивает на рабочий лад.
В-третьих, это возможность делиться игрой и получать комментарии от других пользователей. Это мотивирует искать новые идеи и работать дальше, даже если возникают какие-либо трудности.
Вовлекать детей в программирование лучше всего через игры. Такой подход делает процесс обучения более интересным и мотивирующим. Несмотря на свою кажущуюся простоту, онлайн-платформа Scratch позволяет создавать игры практически любых жанров: шутеры, стратегии, симуляторы и многие другие.
Также Scratch позволяет создавать клоны популярных игр. Мы заново спроектировали часть игры Among Us и подготовили для вас подробную инструкцию по её созданию. Также мы подготовили полный видеоурок, в котором рассказали обо всех особенностях разработки игры (видео вы найдете в конце статьи).
Добавление материалов
На первом этапе разработки игры необходимо подготовить материалы: в основном это спрайты (картинки). Нам понадобятся изображения главного героя, а также фоновые заставки:
Вы можете скачать наши материалы или нарисовать самостоятельно в графическом редакторе на самой платформе.
Мы запрограммируем изменение фонов и игровых карт, движения персонажа и выполнение одного задания — командиру необходимо починить проводку.
Открываем новый проект и добавляем все спрайты, нажав на кнопку «загрузить спрайт». Чтобы заполнить всю игровую сцену, изображения нужно растянуть до максимального размера (карта у нас 731). На следующем этапе нарисуйте желтый кружок — это станет точкой отсчёта, то есть с данного места командир будет начинать свое задание.
Также мы изменим размер героя, чтобы он был пропорционален карте (25). Каждому фону дается свое название — так вы сможете легко ориентироваться между ними.
После всех этих операций мы приступаем непосредственно к самому программированию.
Заставка
Составляем код: когда зеленый флажок нажат, перед вами будет появляться заставка. Она должна задерживаться на две секунды, после чего переключаться на обычный фон и передавать сообщение «начало».
Карта
Когда флажок нажат, фона не видно, поскольку появляется заставка. Но как только фон получает команду «начало», то он снова показывается и переходит в начальное положение: x=0, y=0. После того как карта становится видимой, она постепенно перемещается на задний план.
После всех манипуляций наш герой может перемещаться по карте. Однако она пока не чувствует стены. То есть, если на пути героя встречается преграда, он проходит сквозь неё. Чтобы устранить это, к каждой клавише нужно добавить следующую команду: при столкновении с чёрным цветом главный герой будет изменять координаты на противоположное значение.
На завершающем этапе необходимо сделать так, чтобы игровая карта сменялась на фон с заданием. Для этого необходимо добавить ещё один код: когда мы будем получать задание, то карта будет прятаться. Таким образом у вас не возникнет никаких проблем с игровой картой.
Член экипажа
Сначала нужно добавить тот же код, что и у карты: при нажатии на флажок герой будет прятаться, а при получении сообщения «начала» появляться на экране.
Теперь необходимо сделать анимацию для нашего персонажа. Для этого во вкладке «костюмы» добавьте несколько вариаций движения нашего члена экипажа. Необходимые спрайты можно найти в папке вместе с другими материалами.
Теперь пропишем код: при нажатии на клавиши навигации у героя будут меняться костюмы. В противном случае будет казаться, что мы просто стоим на месте. В блоках «внешнего вида» есть вкладка «изменить костюм на». Её и необходимо выбрать. Добавьте небольшие паузы по 0,2 секунды между сменой костюма, чтобы процесс «переодевания» не происходил слишком быстро.
Когда наш герой будет касаться жёлтого кружка, он будет переходить на фон с заданием. Поэтому необходимо прицепить ещё одно условие: если спрайт касается желтого цвета, то мы передаем новое сообщение «задание». После этого наш герой прячется, и игрок переходит на фон с заданием.
Очень важно, чтобы, когда персонаж закончит выполнять задание и вернётся обратно на карту, он не продолжал стоять на жёлтом кружке. Поэтому необходимо прописать, что после возвращения наш герой переместился по оси y на 15 шагов. Зацикливаем эти действия, чтобы они всегда повторялись.
Задание с проводами
Перейдём на фон задания. В графическом редакторе Scratch необходимо нарисовать спрайты (цветные прямоугольники). Из этих прямоугольников и будут торчать провода.
Теперь необходимо написать программу для этих спрайтов. Сразу же отметим что, когда флажок будет нажат, спрайт будет прятаться, а когда вы будете получать «задание», то он будет переходить на координаты х=-212, y=-116. На следующем этапе уменьшим размер спрайта до 40%.
За все наши провода будет отвечать одна переменная. Создаем её и даём ей имя «провода».
В самом начале её значение будет равняться нулю, а когда мы присоединим первый провод, то её значение изменится на 1.
Теперь нам нужно нарисовать путь от начала провода до конца. Для этого необходимо использовать расширение «перо».
Создаём код. При нажатии на указатель мыши перо будет меняться: оно будет менять свой цвет на жёлтый, опускаться и менять размер на 15.
Когда вы будете касаться второго спрайта, то есть второго конца провода, то вам будет начисляться 1 очко. После того как провод будет соединён, перо останавливается. Обратите внимание, что весь скрипт пера зациклен.
Продублируйте спрайты начала и конца провода и измените цвет на красный, синий и фиолетовый. Они нужны нам для других проводов. Немного измените скрипт, чтобы правильно указать координаты и названия всех спрайтов.
Сыграть в наш Among Us, посмотреть код и другие важные моменты можно на официальном сайте Scratch.
В последнем видеоролике мы улучшили карту, добавили индикатор заданий, звуковые эффекты и новые задания с астероидами. Если у вас получится улучшить игру, добавить новые уровни, то присылайте нам ссылки на ваши игры в комментариях. Мы посмотрим все сообщения и оценим вашу работу.
Если же вы хотите получше изучить Скретч и создать несколько новых игр, то посмотрите другие уроки на нашем канале YouTube. Попробуйте создать игры по мотивам Minecraft или Brawl
Scratch программирование на русском для детей
Наше детство проходило без программирования и такого количества гаджетов вокруг.Современные дети быстро развиваются. Этому способствуют познавательные программы разработанные для детей. Занимательные уроки по физике, химии, гидравлики и многому другому никого уже не удивляют. Программирование и робототехника в этом плане идут впереди планеты всей. Scratch программирование для ребенка станет пропуском в мир его фантазий. Билетом в сказку, где мысли становятся реальностью.
Онлайн уроки по Скретч
В декабре 2019 года я начал выкладывать уроки по scratch для дистанционного обучения. Все материалы оттестированы на детском кружке юных программистов в городе Балашиха. Вот ссылка на кружок робототехники и программирования. У меня занимаются дети от 7 до 12 лет, поэтому занятия будут рассчитаны на этот возраст. Если вы хотите оформить подписку на онлайн уроки по скетч, напишите мне об этом через комментарий в этой статье. Для ознакомления с полным перечнем проектов перейдите в категорию Scratch программирование. Или поочередно изучите материалы из курса рассчитанного на детей 5-8 лет:
Видео уроки по Scratch можно посмотреть на канале YouTube (ставьте лайки — это позволит сделать материалы более популярными) — ссылка на канал.
Попробовав онлайн курс по урокам в Скретч начального уровня, рано или поздно захочется двигаться дальше. В этом помогут продуманные и систематизированные по знаниям курсы Scratch программирования от многочисленных компаний. Я рекомендую обратить внимание на GeekBrains от известной в России группы компаний Mail.ru. На онлайн уроках ребенок получит достойные знания и самое главное систематизирует их, проверенно на собственном ребенке!
Обратите внимание, что на сайте вы найдете уроки по разработки приложений для Андроид в Апп Инвентор, бесплатные уроки и проекты по Lego WeDo и инструкции по детской анимации в стиле Stop Motion. Полистайте страницы сайта и найдете много полезной информации.
Немного о Скретч
Разработанная в далеком 2003 году система программирования Scratch претерпев несколько изменений стала самой популярной средой программирования для детей младших и средних классов. Создание сайтов и ведение проектов в типичной форме не увлечет ребенка. А оживление мультиков, создание собственных элементарных игр — детям будет интересно. Дистрибутив Scratch скачать бесплатно на русском вы можете перейдя по ссылке — СКАЧАТЬ.(RAR-архив)
ВНИМАНИЕ:
Скаченный дистрибутив является Офлайн-редактором для программирования в среде Scratch без Интернета. Зарегистрировавшись на официальном сайте на русском языке — https://scratch.mit.edu доступен больший функционал. Для работы в личном кабинете требуется Интернет. В офлайн-редакторе Scratch Desktop есть некоторые ограничения:
Как работать в среде программирования Scratch?
Scratch — это язык визуального программирования за счет перемещения спрайтов (блоков). Обычно изучение языка проходит в виде создания детской игры или оживления мультиков. В среде уже присутствуют необходимые для творчества элементы. Вы можете сами добавить понравившуюся картинку. Запрограммировать для нее анимацию и получить великолепный мультфильм или невероятную игру. Простота программирования заключается в переносе готовых блоков и при необходимости их настройка. Настройка блока происходит путем введения нужного числа с клавиатуры или выбором действия для блока из выпавшего списка. Таким образом программировать в Scratch сможет любой ребенок. Недавно появилась версия для самых маленьких — ScratchJr. Особенность версии для маленьких деток является отсутствие текста в блоках, ребенок сможет научиться программировать еще не умея читать. Об этой программе я расскажу в следующем своем материале.
Визуальная консоль Scratch делиться на несколько блоков:
В этой статье я не буду рассказывать о том, как программировать в Scratch — это очень долго и получится материал в нескольких частях. Но я выложу для вашего ознакомления уже готовые учебники, которые помогут сделать первые шаги в программировании и родителям и детям.
Книги, уроки и проекты на Scratch:
Формирование учебной программы завершится в Новогодние праздники 2021 года. Но уже сейчас я выкладываю бесплатные уроки по Скретч в несколько сумбурном порядке, но по увеличению сложности проекта. Программный код не обязательно переписывать, в статьях есть возможность скачать спрайта вместе с программным кодом. В дальнейшем останется экспортировать персонажа игры в среду Scratch. Перед ознакомлением с авторскими уроками посмотрите бесплатные учебные пособия прошлых лет от одного из первопроходцев в детского программирования в России:
Обратите внимание, что с недавних пор появился ФОРУМ (путешественников и юных программистов) для обсуждения, переписки и решения вопросов по учебным программам. Базируется он на тематической группе ВКонтакте, через нее вы сможете пообщаться с автором проекта.
Пример того, как создать игру в scratch
Для ЗАПУСКА игры нажмите на ЗЕЛЕНЫЙ ФЛАЖОК, а потом на ПРОБЕЛ, управление происходит с помощью кнопок назад, вперед, вверх и вниз на клавиатуре компьютера.
Благодарность автору проекта за его работу:
Курсы, программы и уроки по Scratch и робототехнике на базе Lego выложены на ресурсе совершенно бесплатно и экономят много денег и времени посетителям сайта. Автор проекта будет признателен за любую благодарность его трудов от отзывов до незначительного денежного перевода. Заранее спасибо за внимание: