Введение
В наше время важно уметь пользоваться компьютерами, планшетами и смартфонами, ведь они являются частью повседневной жизни современного человека. Но ещё более важным является умение разобраться в том, как эти устройства работают. Самая важная часть любого компьютера, если не считать его аппаратное устройство, это программное обеспечение. Поэтому, чтобы понять, как работают компьютеры, нужно разобраться, что такое программы и как они создаются.
Мой старший брат — программист, и я попросил его познакомить меня с этим загадочным миром программирования.
Я захотел сделать игру, и для этого мы выбрали язык визуального программирования Scratch, ведь он был специально создан для обучения детей и подросток программированию.
Проблема: Можно ли в моём возрасте изучить среду визуального программирования Scratch и сделать игру с нуля.
Цель: Создать игру на языке программирования Scratch.
Объект исследования: Программирование и создание игр.
Задачи:
Ознакомиться с тем, что из себя представляет визуальное программирование;
Научиться работать со средой визуального программирования Scratch;
Разработать игру наподобие классической игры «Ну, погоди»;
Представить игру одноклассникам и разместить в Интернете;
Резюмировать процесс изучения визуального программирования и создания компьютерных игр.
Практическая значимость проекта: разработанную игру можно будет использовать педагогами ДО: на уроках, классных часах или технических мастер-классах, а так же в качестве дидактического материала по изучению бесплатной среды программирования Scratch.
Методы работы над проектом:
Анкетирование (3-ьи, 4-ые классы).
Изучение и анализ данных интернет-ресурсов.
Совместное с братом изучение инструментов создания игры.
Создание плана игры и разбор используемых игровых механик.
Сроки работы над проектом: июнь 2022 г. – сентябрь 2022 г.
Глава 1. Визуальное программирование
1. 1 Понятие визуального программирования
У многих при слове «программирование» в голове возникает картинка с человеком, который печатает на компьютере кучу понятных только ему слов и цифр. На первый взгляд, это кажется сложным и не слишком-то увлекательным процессом, тем более для ребенка, который только хочет этому научиться и которому скорее интересен результат, а не предшествующая ему рутина. Тут-то на помощь и приходит визуальное программирование, являющееся идеальным инструментом для обучения ребёнка и позволяющее быстрее достичь результата. Давайте разберемся в понятии визуального программирования, чем оно отличается от обычного и где может пригодиться.
Что такое визуальное программирование, можно догадаться даже из названия. Это технология, которая позволяет создавать программы с помощью графических элементов вместо кода. Так программист может просто описать концепцию приложения и создать алгоритм программы. При этом не нужно будет особо вдаваться в техническую сторону процесса, чего не избежать в текстовых языках. Именно поэтому визуальное программирование полезно в обучении или при описании данных в виде схем.
В последнее время визуальному программированию стали уделять больше внимания, в том числе в связи с развитием мобильных сенсорных устройств (смартфоны, планшеты) и повышением интереса к сфере информационных технологий.
Технологии визуального программирования появились давно. Сама их концепция основана на парадигме программирования потока данных — dataflow programming. Этот подход создали еще в 70-х годах прошлого века. Он заключается в том, что любую программу можно представить в виде графика, который отображает поток данных между компонентами системы. К сожалению, эта парадигма сейчас находится весьма далеко от трендов в разработке программного обеспечения. Но кто знает, возможно, IT и вернется к ней в период популярности визуальных языков программирования.
1.2 Зачем нужно визуальное программирование
Здесь у вас может появиться закономерный вопрос: а почему, собственно, учиться программированию проще на графических элементах — стрелочках и прочих наглядных средствах? Ведь описывать работу программы текстом тоже не выглядит очень сложным.
Одна из важных особенностей работы с текстовыми языками заключается в том, что вы должны помнить синтаксис языка, ключевые слова, правила расстановки скобочек, запятых и так далее. Для программистов, которые работают с этим ежедневно, это нетрудно. Но дети находятся в другой ситуации: они занимаются программированием лишь несколько часов в неделю. Понятно, что при таком графике сложно будет держать в голове все правила текстового языка. А вот с визуальным языком программирования гораздо проще вспомнить, какой блок за что отвечает и как между ними строить связи.
Другая причина — она вытекает из предыдущей — в том, что при работе с текстовым языком легко перепутать символы, сделать синтаксическую ошибку. И хорошо, если редактор кода подскажет вам, где вы ошиблись! Часто приходится тратить кучу времени на поиск проблемы, которая в визуальных языках даже не может произойти. В результате это позволяет вам экономить время и силы для того, чтобы более эффективно изучать само программирование.
Однако, как мы говорили выше, визуальное программирование используют не только для обучения, но и во вполне «взрослых» задачах. Например, в редакторах взаимосвязей в реляционных базах данных, программировании потоков данных, конструкторах программ и так далее.
1.3 Опрос и анализ результатов
Одной из целей моего исследования было узнать, есть ли среди учеников начальных классов интерес к созданию игр. Для этого была создана анкета (Приложение 1) в Google Формы, где мои одноклассники могли пройти опрос из 7 вопросов с вариантами ответов да/нет. Ссылка на опрос (https://forms.gle/gKNoqazYsvdoxYvw9) была опубликована в чате класса.
В опросе приняло участие 27 учеников начальных классов со следующими результатами (Приложение 2 содержит диаграммы):
абсолютно у всех дома есть компьютер – 100% / 25 учеников;
большинство играют в компьютерные игры – 76% / 19 учеников;
почти половина собирала конструкторы Lego для робототехники – 48% / 12 учеников;
чуть меньше половины знают какой-нибудь язык программирования – 44 % / 11 учеников;
почти четверть имеет опыт создания игр – 24% / 6 учеников;
абсолютно все хотят научиться создавать игры – 100% / 25 учеников;
чуть меньше половины хотят стать программистами – 40% / 10 учеников.
Вывод: На основе полученных данных можно сделать вывод, что выбранная мною тема является весьма актуальной и востребованной, т. к. каждый принявший участие в опросе ученик хочет научиться создавать игры и у каждого дома есть необходимый для этого компьютер. Так же почти у половины учеников есть опыт работы с Lego Mindstorms (конструктор для создания программируемого робота), для которого есть возможность написания программ на выбранном мною языке визуального программирования Scratch. Опыт разработки компьютерных игр так же сильно поможет тем ученикам, кто хочет в будущем стать программистом, т. к. программирование – это неотъемлемая часть разработки любой компьютерной игры.
Глава 2. Знакомство с программой Scratch
2.1 Визуальный инструмент программирования Scratch
Одним из лучших визуальных инструментов для обучения детей программированию и созданию программ считают Scratch.
Scratch — это визуально-блочная событийно-ориентированная среда программирования, позволяющая детям создавать собственные анимированные и интерактивные игры, презентации и проекты. В его основе лежит принцип кубиков Lego: из них даже самые маленькие дети смогут собрать простейшие программные конструкции. Scratch позволяет детям составлять свои программы-процедуры из блоков так же легко, как они собирают конструкции из разноцветных кубиков. Таким образом, в игровой манере дети понимают основы визуального программирования.
Вот еще одна интересная особенность Scratch: используя набор LEGO BOOST, на нём можно создавать программы и приложения для конструкторов Lego, чтобы вдохнуть жизнь в собственноручно собранных роботов. В детстве я очень много собирал Lego и два года ходил на LegoРобототехнику, где впервые и познакомился со Scratch.
Также существует специальная модификация Scratch for Arduino, позволяющая работать с платами Arduino и создавать приложения для умных устройств.
Следующий этап моей работы — знакомство с возможностями среды программирования Scratch.
2.2 Интерфейс программы Scratch
Основными компонентами скретч-программы являются объекты-спрайты. Спрайт состоит из графического представления — набора кадров-костюмов (англ. costume) и сценария-скрипта. Для редактирования костюмов спрайтов в скретч встроен графический редактор (англ. Paint Editor). Действие Скретч-программы происходит на сцене (англ. stage) размером 480×360 (условных) пикселей с центром координат в середине сцены.
Для программирования сценариев в Скретче используется drag-and-drop-подход (в переводе с английского означает буквально тащи-и-бросай; бери-и-брось): блоки из палитры блоков перетаскиваются в область скриптов.
По функциональному назначению блоки делятся на 10 групп, принадлежность блока к той или иной группе обозначается его цветом.
Группа |
Английское название |
Цвет |
Примечание |
Движение |
Motion |
синий |
управляют движением спрайта (не применяется в фоне) |
Внешний вид |
Looks |
фиолетовый |
управляют внешностью спрайта |
Звук |
Sounds |
розовый |
управляют звуком спрайта |
События |
Events |
жёлтый |
проверка наличия событий, отправка сигналов ко всем спрайтам |
Управление |
Control |
оранжевый |
управляющие конструкции, заголовки обработчиков событий |
Сенсоры |
Sensing |
голубой |
опрос устройств ввода, таймер и имя участника |
Операторы[4] |
Operators |
зелёный |
арифметико-логические операции |
Переменные |
Variables |
красный |
раздел для управления переменными и списками |
Другие блоки |
My Blocks |
светло-розовый |
преобразуют комбинацию блоков в один блок, что упрощает код, или же упрощает создания своего личного блока |
Добавить Расширения |
Extensions |
темно-зелёный |
расширяют возможности Скретч. Есть разные виды расширений, такие, как: музыка, перо, видео распознавание, текст в речь, переводчик, Makey Makey, micro: bit, LEGO MINDSTORMS EV3 и LEGO Education WeDo 2.0 |
У многих блоков имеется редактируемое белое поле для вводимых скретч-программистом параметров.
Так выглядит интерфейс программы Scratch. На панели инструментов есть три вкладки: «Код», «Костюмы», «Звуки». Раздел «Код» состоит из 4-х окон. В левом окне в «Панели скриптов» находятся разноцветные кружки, которые отвечают за определенные блоки. Например, синий - это движение, сиреневый - звук, фиолетовый - внешний вид, желтый - события и т.д. Следующее окно – это «Область хранения скриптов» (команд). Скрипты соединяются между собой, как разноцветные кирпичики Lego, в них задается какое-либо действие или событие. В следующем окне создается сама игра, где соединяются скрипты. В правом окне можно просмотреть созданную игру. Также в этом окне можно добавить фоны (их можно выбрать из идущей вместе со средой коллекции, либо вставить свои) и спрайты (объекты или герои). В нижней панели можно редактировать спрайты (увеличить в размерах, скрыть или показать объект, поменять название и др.). На панели инструментов имеются два значка: зеленый флажок обозначает начало просмотра игры, красный кружок – останавливает игру.
С помощью вкладки «Костюмы» мы можем создать самого героя или детально отредактировать его.
С помощью вкладки «Звуки» можно выбрать нужный звук в коллекции имеющихся в программе или записать самому.
Глава 3. Практическая часть создания игры
3.1 Создание игры в программе Scratch
Создание игры я начал с выбора жанра. Решил сделать клон классической игры «Ну, погоди».
Чтобы сосредоточиться на программировании и изучении Scratch, мы взяли готовые фон и спрайты (кота, курочек и яиц), немного их подредактировав: дабавили корзинку для яиц коту, меняли цвет кота и курочек и дорисовали жёрдочки для куриц.
Далее я начал создавать «Код» (Приложение 3), чтобы кот ловил яйца, перемещаясь из одной точки в другую; радовался, если поймал яйцо, и огорчался, если яйцо разбилось. В коде фона содержится игровой цикл, который отвечает за события связанные с яйцами (появление нового яйца, поимка яйца котом в корзику, разбитие яйца при падении), и подсчет очков. Когда у игрока заканчиваются жизни (разбиваются три яйца), на экран выводится итоговый счёт (Приложение 4).
Вот несколько фотографий из процесса работы над проектом:
Мне удалось разработать полноценную игру. Игра запускается по нажатию на зеленый флажочек в Scratch: яйца начинают скатываться по жердочкам, добавляют очко, если пойманы, и убавляют жизни, если нет. Когда жизни заканчиваются, кот сообщает, сколько яиц было поймано. Чтобы сыграть ещё раз, нужно снова нажать на зелёный флажок.
Вот как выглядит получившийся код для разных составляющих игры:
Код для кота |
Код для курочек |
Код игрового цикла и вывода счёта |
В процессе работы над игрой у меня появлялись разные идеи, как можно сделать игру ещё интереснее. Например, можно будет сделать, чтобы со временем курицы начинали нести яйца чаще и тем самым усложняли игру. Но чтобы не переусложнять проект, решил сделать изначально задуманную игру, а идеи оставить на будущее.
Создав игру, я понял, насколько сложна и кропотлива работа программиста. Она требует внимания, усидчивости, фантазии и больших знаний. Я очень рад, что мой брат научил меня всему этому, и понял, что это большой труд — создавать программы. Получившаяся игра очень понравилась моим одноклассникам и друзьям. Учителя информатики могут использовать её в качестве дидактического материала по изучению бесплатной среды программирования Scratch или для демонстрации того, что ребенок в моем возрасте может создавать игры.
Преимущества моей игры заключаются в том, что с экономической точки зрения она бесплатная, финансовые затраты для процесса создания игры отсутствовали, время прохождения игры для пользователя не превышает установленных норм работы за компьютером. Проект находится в свободном доступе для любого пользователя на сайте Scratch по ссылке https://scratch.mit.edu/projects/36436/.
Я изучил инструменты среды программирования Scratch и под наставничеством старшего брата разработал игру.
В ходе работы над игрой мне удалось познакомиться с разными аспектами разработки игр, такими как: выбор жанра, проработка идеи, работа с графикой (фон, спрайты, анимация) и звуком, программирование логики игры.
Получившуюся игру я опробовал на своих одноклассниках и друзьях. Большинству она понравилась. Многие были удивлены, как я сам смог создать от начала до конца игру, и тоже захотели этому научиться. Теперь у меня в планах придумать и сделать новую игру – викторину с вопросами и ответами и спрограммировать её.
Я рад, что познакомился с удивительным миром программирования и разработки игр и теперь лучше понимаю, как работают компьютеры.
Список используемой литературы и источников сети интернет
Литература
Голиков Денис и Голиков Артём / Программирование на Scratch. Делаем игры и мультики. Подробное пошаговое руководство для самостоятельного изучения ребёнком, 2014.
К. Вордерман, Дж. Вудкок, Ш. Макаманус и др.; пер. с англ. С. Ломакина. – М.: Манн, Иванов и Фербер / Программирование для детей. Иллюстрированное руководство по языкам Scratch и Python / 2015. – 224 с.
Классификация обучающих компьютерных игр: https://studbooks.net/2235876/informatika/klassifikatsiya_obuchayuschih_kompyuternyh
Официальный сайт Scratch: http://scratch.mit.edu
Онлайн школа Skysmart: https://skysmart.ru/articles/programming/vizualnoe-programmirovanie
Ссылки
scratch.mit.edu — официальный сайт Скретч
Курс «Введение в Scratch»: http://younglinux.info/scratch — цикл из десяти уроков по основам работы в среде программирования Скретч. Дата обращения: 6 августа 2014.
Русская Скретч Вики: https://scratch-ru.info
Учитесь со Scratch!: http://setilab.ru/scratch — сообщество учителей, родителей и просто творческих людей. Архивировано 15 апреля 2014 года.
Видеоуроки по Скретч: http://odjiri.narod.ru
ScratchED (англ.). Гарвардский университет: https://scratched.gse.harvard.edu/ — Глобальное сообщество учителей Скретч
Ardu Scratch - http://ardublock.ru/avtor/006/ - Scratch конвертерв Android
Приложение 1
Анкета для учеников 4-ых классов
Есть ли у вас дома компьютер?
Да
Нет
Играете ли вы в компьютерные игры?
А) Да
Б) Нет
Собирали ли вы конструкторы Лего?
А) Да
Б) Нет
Знаете ли вы какие-нибудь языки программирования?
А) Да
Б) Нет
Создавали ли вы когда-нибудь игры?
А) Да
Б) Нет
Хотите ли вы научиться создавать игры?
А) Да
Б) Нет
Хотите ли вы стать программистом?
А) Да
Б) Нет
Приложение 2
Результаты анкетирования
Приложение 3
Программирование логики игры
Приложение 4
Завершающий этап игры