Первые шаги в IT: создаем свою первую игру на Scratch

Этот курс превратит обучение в увлекательную игру, где мы без сложных кодов и скобок освоим логику программирования. Мы научимся управлять персонажами и создадим свой первый проект, используя понятные аналогии и методики из популярных руководств [habr.com](https://habr.com/ru/companies/otus/articles/886402) и [robotlandia.ru](https://robotlandia.ru/abc5/0101.htm).

1. Магия кода: почему программирование похоже на конструктор LEGO

Магия кода: почему программирование похоже на конструктор LEGO

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

У меня для тебя отличная новость: это миф.

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

Что такое программирование на самом деле?

Давай забудем о компьютерах на минуту. Представь, что ты хочешь научить своего друга делать идеальный бутерброд. Если ты просто скажешь ему: «Сделай бутерброд», результат может быть непредсказуемым. Он может положить колбасу под хлеб или вообще забыть про масло.

Чтобы получить именно тот результат, который ты хочешь, тебе нужно дать четкую инструкцию:

  • Возьми кусок хлеба.
  • Намажь масло на хлеб.
  • Положи сверху кусок сыра.
  • Положи сверху кусок колбасы.
  • Поздравляю! Ты только что составил алгоритм.

    > Алгоритм — это точная последовательность действий, которая приводит к конкретному результату.

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

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

    Почему код похож на LEGO?

    В «взрослых» языках программирования (таких как Python, Java или C++) инструкции пишутся текстом. И здесь новичков подстерегает главная проблема: синтаксис. Это правила написания кода. Забыл точку с запятой? Программа не работает. Написал Print вместо print? Ошибка.

    Именно здесь на сцену выходит визуальное программирование и наш главный инструмент — Scratch.

    Представь, что каждая команда — это цветной кирпичик LEGO.

    * У кирпичика есть форма: ты не можешь соединить детали, которые не подходят друг другу. * У кирпичика есть цвет: он подсказывает, за что отвечает эта деталь (движение, звук или внешность). * У кирпичика есть значение: ты можешь менять параметры прямо на лету.

    В Scratch тебе не нужно писать код вручную. Ты берешь блок «Идти 10 шагов» и прикрепляешь к нему блок «Повернуть на 15 градусов». Они соединяются с приятным щелчком (визуальным, конечно).

    Согласно media.foxford.ru, Scratch устраняет барьер синтаксических ошибок, позволяя сконцентрироваться на логике и идее проекта. Ты не можешь написать «неправильный» код, потому что неподходящие блоки просто не соединятся. Это как защита от ошибок, встроенная в сам конструктор.

    Знакомство со Scratch: от MIT до твоего экрана

    Scratch — это не просто «детская игра». Это полноценная среда разработки, созданная в знаменитой лаборатории MIT Media Lab (Массачусетский технологический институт) в 2007 году.

    По данным start.itmo.ru, платформу используют в 200 странах мира, а интерфейс переведен на 74 языка. Это глобальное сообщество, где люди делятся своими проектами, играми и мультфильмами.

    Как это работает?

    В Scratch экран разделен на несколько зон:

  • Сцена: Здесь происходит действие. Тут живет твой персонаж (в Scratch их называют спрайтами).
  • Палитра блоков: Твоя коробка с деталями LEGO. Все блоки рассортированы по цветам.
  • Область скриптов: Твой рабочий стол, где ты собираешь программу из блоков.
  • Ты просто перетаскиваешь блоки из палитры в рабочую область и соединяешь их.

    Пример магии

    Допустим, мы хотим, чтобы наш персонаж прошел определенное расстояние. В физике и математике мы бы описали это формулой:

    где — это расстояние (путь), — скорость движения, а — время в пути.

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

  • Берем блок «Повторить 10 раз» (это наше время ).
  • Внутрь кладем блок «Идти 5 шагов» (это наша скорость ).
  • В итоге персонаж пройдет шагов. Ты только что использовал цикл и координатное перемещение, даже не заметив этого!

    Развенчиваем мифы: «Это не настоящее программирование»

    Многие новички переживают: «Если я учусь на кубиках, стану ли я настоящим программистом?».

    Ответ: Да, безусловно.

    Как отмечается в статье на sky.pro, навыки визуального программирования в Scratch значительно облегчают освоение JavaScript и других языков в будущем.

    Логика везде одинакова: * Циклы (повторение действий) есть и в Scratch, и в коде, на котором работает Google. * Условия («Если коснулся стены, то оттолкнись») работают одинаково везде. * Переменные (коробочки для хранения очков или жизней) — это фундамент любого языка.

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

    Твоя суперсила

    Программирование дает тебе суперсилу: ты перестаешь быть просто потребителем контента (игроком, зрителем) и становишься Творцом.

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

    В этом курсе мы пройдем путь от чистого листа до твоей первой настоящей игры. Мы не будем зубрить теорию. Мы будем экспериментировать, ошибаться (это полезно!) и сразу видеть результат.

    Итоги

    * Программирование — это инструкции. Это просто способ объяснить компьютеру, что ты от него хочешь, шаг за шагом. * Код похож на LEGO. В Scratch программы собираются из цветных блоков, которые невозможно соединить неправильно. Это избавляет от страха ошибки. * Логика важнее языка. Неважно, пишешь ты код текстом или собираешь мышкой — ты используешь одни и те же принципы (алгоритмы, циклы, условия). * Scratch — мощный старт. Это инструмент, разработанный в MIT, который используют миллионы людей для входа в IT. * Ты — творец. Главная цель курса — научить тебя создавать свои собственные миры.

    Готов собрать свой первый скрипт? Тогда переходи к следующему уроку, где мы изучим интерфейс Scratch и заставим нашего кота сделать первое сальто!

    2. Алгоритмы: пишем инструкцию для кота, чтобы он не врезался в стену

    Алгоритмы: пишем инструкцию для кота, чтобы он не врезался в стену

    Привет, коллега! В прошлой статье мы выяснили, что программирование — это не магия, а сборка конструктора LEGO. Сегодня мы переходим от теории к практике. Мы научим нашего кота (главного героя Scratch) двигаться.

    Но есть проблема. Компьютер, как мы уже знаем, очень исполнительный, но совершенно несамостоятельный. Если ты скажешь коту «Иди», он пойдет. И будет идти, пока не уйдет за край экрана, оставив торчать только хвост.

    Наша задача сегодня — написать такой алгоритм, который научит кота видеть стены и отталкиваться от них. Мы разберем три кита, на которых держится любая игра: Координаты, Циклы и Условия.

    Где мы находимся? Карта мира Scratch

    Прежде чем куда-то идти, нужно понять, где мы вообще находимся. Экран в Scratch — это не просто белый прямоугольник. Это математическая система координат. Не пугайся, это проще, чем кажется.

    Представь, что сцена — это лист бумаги в клеточку.

    * В самом центре стоит точка ноль (). * Линия, которая идет слева направо (горизонт), называется ось . * Линия, которая идет снизу вверх (вертикаль), называется ось .

    Любая точка на экране имеет свой адрес. Например, если кот стоит в центре, его координаты: . Если он сделает шаг вправо, его увеличится. Если подпрыгнет — увеличится .

    Согласно robo-wiki.ru, понимание системы координат — это база для управления движением персонажа. Без этого мы не сможем объяснить компьютеру, куда именно нужно телепортировать героя.

    > В Scratch ширина сцены — 480 точек (от до по ), а высота — 360 точек (от до по ). > > РобоВики

    Шаг 1. Заставляем кота двигаться

    Давай перетащим из синей палитры «Движение» блок «Идти 10 шагов».

    Нажми на него. Кот сдвинулся! Нажми еще раз. Еще сдвинулся.

    Что происходит с точки зрения математики? Компьютер берет текущую координату кота и прибавляет к ней число шагов :

    Если был , а шагов , то новый станет .

    Но кликать мышкой по блоку каждый раз, чтобы кот шел — это скучно. Мы хотим, чтобы он шел сам. Нам нужен Цикл.

    Шаг 2. День сурка (Циклы)

    В программировании часто нужно повторять одно и то же действие много раз. Чтобы не ставить 100 блоков «Идти 10 шагов» подряд, мы используем специальную конструкцию — цикл.

    В палитре «Управление» (оранжевая) найди блок, который выглядит как пасть крокодила: «Повторять всегда».

    Если мы положим блок «Идти 10 шагов» внутрь этой «пасти», произойдет следующее:

  • Кот сделает 10 шагов.
  • Программа тут же вернется в начало и снова заставит кота сделать 10 шагов.
  • И так до бесконечности.
  • По данным habr.com, циклы — это один из трех базовых принципов алгоритмов в Scratch, наряду с последовательностью и условиями. Именно они оживляют персонажа.

    Попробуй: Собери скрипт «Когда флажок нажат» -> «Повторять всегда» -> «Идти 10 шагов». Нажми на зеленый флажок.

    Результат: Кот убежал за правую границу экрана и застрял. Почему? Потому что мы не объяснили ему, что делать со стеной.

    Шаг 3. Искусственный интеллект (Условия)

    Теперь самое интересное. Мы должны научить кота принимать решения.

    В жизни мы постоянно используем конструкцию «ЕСЛИ — ТО»: * Если на улице дождь, то я беру зонт. * Если чай горячий, то я дую на него.

    В программировании это называется условный оператор.

    Нам нужно сказать коту: «Эй, дружок! Иди вперед. Но ЕСЛИ ты коснулся края экрана, ТО развернись и иди обратно».

    Способ для ленивых (и эффективных)

    В Scratch есть готовый блок для этой задачи в разделе «Движение»: «Если касается края, оттолкнуться».

    Давай добавим его внутрь нашего цикла «Повторять всегда», сразу после шагов.

    Наш алгоритм теперь выглядит так:

  • Иди 10 шагов.
  • Проверь: я у края?
  • Если да — развернись.
  • Повтори всё сначала.
  • Запускаем! Кот бегает от стенки к стенке! Ура!

    Но есть нюанс... Скорее всего, когда твой кот оттолкнулся от правой стены и пошел влево, он перевернулся вверх тормашками. Он ходит по потолку головой вниз!

    Почему так? Потому что компьютер понял команду «развернись» буквально — он повернул спрайт на 180 градусов. Был головой вверх, стал головой вниз.

    Исправляем гравитацию

    Чтобы кот не ходил на голове, нам нужно настроить стиль вращения.

    В разделе «Движение» найди блок «Установить способ вращения [влево-вправо]». Поставь его в самое начало скрипта, перед циклом «Повторять всегда». Мы задаем это правило один раз при старте игры.

    Теперь кот ведет себя как нормальное земное существо.

    Шаг 4. Пишем «умную» проверку (Продвинутый уровень)

    Блок «Если касается края, оттолкнуться» — это удобно. Но настоящие программисты должны уметь создавать свои условия. Что, если мы хотим, чтобы кот отталкивался не от края экрана, а от нарисованного дерева или другого кота?

    Давай соберем эту логику вручную, используя блок «Если < > то» из раздела «Управление».

    Нам понадобится Сенсор (голубой блок). Сенсоры — это органы чувств нашего героя. Они отвечают на вопросы «Да» или «Нет».

    Алгоритм ручного отталкивания:

  • Берем блок «Если < > то».
  • В шестиугольное отверстие вставляем сенсор «Касается [край]?».
  • Внутрь «пасти» кладем действие: «Повернуть на 180 градусов».
  • Как отмечается в статье на habr.com, использование условий (триггеров) позволяет создавать более сложные механики, например, отнимать жизнь при касании врага, а не просто отталкиваться.

    Теперь ты можешь заменить «край» на любой другой объект. Например, нарисовать красную линию и сказать: «Если касается красного цвета, то поверни назад». Это основа для создания лабиринтов!

    Итоги

    Сегодня ты перестал просто двигать блоки и начал мыслить как программист. Ты освоил:

  • Координаты (): Это адрес любой точки на сцене. — влево/вправо, — вверх/вниз.
  • Циклы («Повторять всегда»): Способ заставить компьютер делать рутинную работу за нас бесконечное количество раз.
  • Условия («Если... то...»): Логика, которая позволяет программе реагировать на изменения (например, на удар о стену).
  • Сенсоры: «Глаза» и «уши» программы, которые проверяют, произошло ли какое-то событие.
  • Твой кот больше не убегает в бесконечность. Он заперт в комнате и послушно бегает туда-сюда. В следующем уроке мы дадим игроку власть над котом и научимся управлять им с клавиатуры!