Нажмите ОК, если Вы выражаете свое согласие на обработку Ваших персональных данных в соответствии с Согласием на обработку персональных данных и Политикой конфиденциальности. Вы можете запретить обработку cookies через браузер.
ОК

Учим кота бегать: уроки Scratch для детей

Представь, что ты даешь роботу команду: «чисти зубы». Он выполнил ее один раз и остановился. Но зубы-то нужно чистить каждый день! Чтобы не объяснять одно и то же заново, мы говорим: «Делай это всегда». В жизни некоторые из таких повторяющихся действия называются привычками. В программировании они называются циклами.

Цикл в Scratch — это особый блок-«обертка». Внутрь него кладут другие команды, и цикл заставляет компьютер выполнять их снова и снова. Без циклов даже самый умный код похож на робота, который почистил зубы один раз в жизни и успокоился.

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

Также будут полезны:
А теперь — поехали!

Попробуйте бесплатно!

Оставьте свой номер: мы позвоним, чтобы записать на бесплатное занятие и ответить на все ваши вопросы.

Где искать циклы в Scratch

Прежде чем приступить к уроку, открываем Scratch и смотрим на левую часть экрана. Здесь находится палитра блоков, разделенная на цветные вкладки. Нас интересует вкладка «Управление» — желто-оранжевого цвета. Именно здесь спрятались циклы. Если вы никогда не заглядывали в эту вкладку, вас ждет открытие: кроме циклов здесь есть блоки ожидания, остановки, клонирования. Но в этом уроке Scratch мы сосредоточимся только на циклах — именно на них держится любая анимация и игры.

Первый блок — «повторять всегда». Он выглядит как разомкнутая скобка без нижней стенки. Это бесконечный цикл. То, что вы положите внутрь, будет повторяться вечно — пока вы не остановите программу красным стоп-сигналом сверху экрана.

Второй блок — «повторить N раз». Внешне он похож на первый блок, но с нижней границей и окошком для числа. Он выполнит команды ровно столько раз, сколько вы укажете, и передаст управление дальше. По умолчанию там стоит 10, но можно поставить любое целое число — 3, 50, 200.

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

У всех трех блоков есть общий визуальный признак: С-образная форма. Это не просто дизайн, это подсказка. Цикл работает как коробка или рюкзак: кладем блоки внутрь, закрываем — и они начинают повторяться.

Важно понять одну простую вещь. Цикл влияет только на блоки, которые лежат внутри него. Если поставить цикл, но забыть положить в него команды — ничего не произойдет. Блоки, оставшиеся сверху или снизу, выполнятся один раз и благополучно завершат работу. Это самая частая ошибка новичков.

Запомните главную мысль этой части урока по Scratch: цикл без блоков внутри — пустая коробка. А пустая коробка ничего не делает.

Урок Scratch #1: знакомимся с бесконечным циклом и заставляем кота ходить

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

  1. Открываем редактор, выбираем кота (он уже есть в новом проекте), переходим во вкладку «События». Берем оранжевый блок «когда флажок нажат» — это точка входа, с него начинается любая программа. Перетаскиваем в рабочую область.
  2. Теперь идем во вкладку «Управление». Находим блок «повторять всегда» — бесконечный, без нижней границы. Цепляем его снизу к блоку с флажком. Внутри этого цикла мы будем складывать команды, а пока там пустота.
  3. Дальше берем синий блок «идти 10 шагов» из вкладки «Движение» и кладем его внутрь цикла. Туда же добавляем синий блок — «если касается края, оттолкнуться».
Схема готова:
когда флажок нажат
повторять всегда
  • идти 10 шагов
  • если касается края, оттолкнуться

Нажимаем зеленый флажок над сценой — и кот побежал! Добегает до правого края, разворачивается, бежит влево, снова разворачивается… и так бесконечно.
Попробуем убрать блок «повторять всегда», оставим только «идти 10 шагов» и «оттолкнуться». Запускаем. Кот делает 10 шагов, разворачивается (если коснулся края) и… останавливается, ведь программа закончилась. Без цикла команды выполняются ровно один раз и заканчиваются. Кот не понимает, что нужно продолжать. Цикл — это единственный способ дать компьютеру инструкцию: «делай это постоянно, пока я не скажу стоп».

А теперь эксперимент: удалим блок «если касается края, оттолкнуться». Оставим только бесконечный цикл и «идти 10 шагов». Запускаем.

Кот послушно шагает, шагает и… уходит за правую границу экрана. Его не видно, но программа продолжает работать: блок «идти 10 шагов» крутится в пустоте бесконечно, а кот потерялся в цифровом космосе.

Чтобы вернуть кота, нужно остановить программу красным кружком и вернуть блок отталкивания — без него кот не умеет разворачиваться.
Запомните: в играх почти никогда нельзя позволять персонажу покидать сцену, если это не задумано специально.

Итак, кот бегает! Но если вы сейчас повторили пример, то заметили странность. Кот бегает, но делает это неправильно. Когда он касается края, то не просто разворачивается, а переворачивается вверх ногами, сначала идет на голове, потом снова на лапах. Это выглядит забавно, но нужно, чтобы кот всегда стоял на ногах. Значит, у нас появилась новая задача, и мы решим ее прямо сейчас.

Урок Scratch #2: исправляем кота, который становится на голову

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

Почему так происходит? Дело не в ошибке, это настройки по умолчанию. В Scratch любой спрайт при развороте может вращаться на 360 градусов. Блок «если касается края, оттолкнуться» по умолчанию дает дополнительную команду: «развернись на 180 градусов». Поэтому кот становится на голову — он просто выполняет команду.

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

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

Теперь код выглядит аккуратно и профессионально:
когда флажок нажат
установить способ вращения [влево-вправо]
повторять всегда
  • идти 10 шагов
  • если касается края, оттолкнуться

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

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

Скидка 10% для новых клиентов при записи в день обращения*
Отправьте заявку, и мы свяжемся с вами для консультации
* Скидка действует по промокоду на покупку первого абонемента от 12 занятий и более в день обращения. Новым считается клиент, прежде ни разу не приобретавший абонемент в школе.

Урок Scratch #3: настраиваем анимацию внутри цикла и оживляем персонажа

Сейчас наш спрайт выглядит, как фигурка, вырезанная из картона, которую кто-то возит туда-сюда. Исправим это и добавим ему жизни!

Внутри каждого спрайта в Scratch спрятано несколько картинок — их называют костюмами. У стандартного кота их два: с поднятой лапой и с опущенной. Чередуя эти костюмы, мы создадим иллюзию бега. Это работает ровно так же, как быстрая смена кадров в мультфильме — картинка оживет.

  1. Нам понадобится блок «следующий костюм». Он находится во вкладке «Внешность» — фиолетовая группа. Этот блок переключает спрайт на следующий костюм по порядку. Когда костюмы заканчиваются — возвращается к первому. И так по кругу.
  2. Добавляем блок внутрь бесконечного цикла. Лучше всего поставить его в начало, сразу после открывающей скобки цикла. Тогда смена костюма будет происходить на каждом шаге.
Обновленный код выглядит так:
когда флажок нажат
установить способ вращения [влево-вправо]
повторять всегда
  • следующий костюм
  • идти 10 шагов
  • если касается края, оттолкнуться

Запускаем программу. Теперь кот не скользит, а именно бежит. Мы сделали анимацию!
Затем можно (и нужно!) настроить скорость смены костюмов. Сейчас кот бежит очень быстро. Лапы мелькают так, что сливаются в размытое пятно. Причина в том, что цикл «повторять всегда» не знает слова «подожди». Он выполняет команды с максимальной скоростью, на которую способен компьютер. Для современных процессоров 10 шагов и смена костюма — это наносекунды. Кот перебирает лапами очень быстро, но мы видим только дрожание.

Как замедлить кота? Нужно вставить внутрь цикла блок ожидания. Он называется «ждать 1 секунд» и лежит во вкладке «Управление». Поставьте его после смены костюма или шага. Поэкспериментируйте со значением: 0,2 секунды, 0,1, 0,05. Чем меньше число, тем быстрее бег.

В итоге мы увидим перебирающего лапками бегущего кота. Это работает, потому что человеческий глаз несовершенен. Если менять картинки быстрее 10–12 раз в секунду, мозг перестает замечать отдельные кадры и склеивает их в непрерывное движение. В нашем цикле смена костюма происходит на каждой итерации, а итерации следуют одна за другой с огромной скоростью — кот делает 10 шагов и переключает костюм за доли секунды. Глаз видит не двух разных котов, а одного бегущего.

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

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

Урок Scratch #4: знакомство с конечным циклом «повторить N раз»

С бесконечным циклом кот бегает бесконечно. А если нужно, чтобы кот прошел ровно 100 шагов и остановился? Или сделал ровно три прыжка, четыре кувырка, пять поворотов? В играх и анимациях часто требуется точное количество повторений: враг делает ровно два выстрела, персонаж подпрыгивает трижды, дверь открывается после пяти секунд ожидания.

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

  1. Заменяем «повторять всегда» на «повторить 10 раз». Идем во вкладку «Управление». Рядом с бесконечным циклом лежит блок «повторить 10 раз». Он выглядит похоже, но с нижней стенкой и белым окошком для числа. Это цикл со счетчиком. Он выполнит команды внутри ровно столько раз, сколько написано в окошке, и передаст управление дальше.
  2. Удаляем старый блок «повторять всегда» и ставим на его место «повторить 10 раз». Оставляем внутри все остальное: смену костюма, шаги, отталкивание от края. Запускаем.

Кот проходит 100 шагов (10 повторений × 10 шагов = 100 шагов) и останавливается. Если он не успел коснуться края, он просто замирает. Программа закончена.

Давайте менять числа и смотреть, что получится:
  • Поставим «повторить 20 раз». Кот пройдет 20 × 10 = 200 шагов. Он убежит дальше, возможно, несколько раз коснется края и оттолкнется.
  • Оставим 10 повторений, но увеличим количество шагов до 20: «идти 20 шагов». Тогда путь станет 10 × 20 = 200 шагов. Результат тот же — 200 шагов, но теперь цикл длиннее.
  • Поставим «повторить 5 раз» и «идти 15 шагов»? 5 × 15 = 75 шагов.
Мы можем управлять дальностью и скоростью, меняя два числа.

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

Циклы придумали не только для бегающих котов. Одна из самых красивых задач — рисование фигур. Попробуем нарисовать квадрат. В школе нас учили: «Приложи линейку, начерти линию, поверни линейку…» — и так четыре раза. В Scratch это делается такой командой:
когда флажок нажат
повторить 4 раза
  • идти 50 шагов
  • повернуть на 90 градусов

Запустите. Пока мы просто двигаем спрайт. Но если опустить перо (вкладка «Перо»), кот начнет рисовать. Всего четыре повторения — и идеальный квадрат готов. Сторона 50 шагов, угол 90 градусов.

А если изменить число повторений и угол поворота? Поставить 3 повторения и 120 градусов — получится треугольник. Поставить 6 и 60 — шестиугольник. Можно даже нарисовать круг (если повторять цикл 360 раз по 1 шагу и 1 градусу).

Квадрат — классический пример того, как циклы помогают сократить код. Без цикла пришлось бы написать восемь строк. С циклом — всего три блока. Меньше кода — меньше ошибок. Программисты называют это DRY: Don't Repeat Yourself — «не повторяйся». Циклы — главный инструмент для борьбы с повторениями.

Конечный цикл «повторить N раз» не обязательно использовать с движением. Внутрь можно положить что угодно: смену костюмов, звуки, сообщения, вычисления. Например, чтобы сыграть мелодию, нужно положить блоки «играть ноту» внутрь циклов. Главное — правильно посчитать количество повторений.

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

Урок Scratch #5: цикл с условием «повторять пока не»

Этот блок — самый сложный. Ему нужно условие — вопрос, на который можно ответить «да» или «нет». А вопросы в Scratch задают блоки из вкладки «Сенсоры».

«Сенсоры» — это органы чувств спрайта. Они умеют проверять: коснулся ли кот края? Встретил ли мячик? Нажата ли клавиша? Слышен ли определенный звук? Без сенсоров цикл с условием работать не может. Поэтому сегодня мы только познакомимся с этим блоком, а полноценно пользоваться им сможем, когда подробно разберем сенсоры.

Но понять принцип можно уже сейчас. Цикл «повторять пока не» работает так: он повторяет команды внутри, пока условие не станет истинным. Когда условие выполнилось — цикл мгновенно останавливается и передает управление дальше. Разобраться поможет аналогия из жизни. Мама говорит: «Мой руки, пока они не станут чистыми». Она не говорит: «Потри ладони ровно 15 раз», не говорит: «Мой руки бесконечно». Она ставит условие: чистота. Сколько раз тереть — неизвестно. Может, 5, а может, 20. Это зависит от того, насколько грязные руки. Мы моем и проверяем: они уже чистые? Нет? Моем дальше. Да? Останавливаемся.

Так же работает цикл «повторять пока не». Ставим условие — и цикл сам решает, сколько итераций ему сделать.

Пример в Scratch. Представим, что у нас есть блок из «Сенсоров» — «касается края?». Мы можем собрать такую конструкцию:
повторять пока не касается края?
  • идти 5 шагов
Спрайт пойдет вперед по 5 шагов. После каждых пройденных 5 шагов цикл задает вопрос: «Я уже коснулся края?» Нет? Тогда шагаем еще. Как только лапа кота касается границы сцены — условие становится истинным («да, коснулся края»), цикл мгновенно завершается, кот останавливается ровно у края.

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

Заключение

Мы проделали огромный путь. Еще совсем недавно наш кот просто стоял на месте и грустно смотрел в пустоту. А теперь он бегает, перебирает лапами, отскакивает от краев. Вся эта магия стала возможной благодаря одной-единственной конструкции — циклу.
Что мы научились делать за этот урок Scratch:

  • Запускать бесконечное движение. Блок «повторять всегда» превратил статичную картинку в живого, движущегося персонажа. Кот отправился в путешествие по сцене.
  • Исправлять перевороты. Блок «установить способ вращения» поставил кота на ноги. Теперь он не кувыркается как циркач, а бежит как полагается — головой вверх, лапками вниз.
  • Добавлять анимацию. Блок «следующий костюм» оживил кота. Лапы перестали быть приклеенными, хвост задвигался, бег перестал быть скольжением.
  • Считать шаги с конечным циклом. Блок «повторить N раз» дал нам контроль. Теперь мы сами решаем, сколько шагов сделает кот, когда остановится и какой путь пройдет.
  • Понимать принцип условного цикла. Мы заглянули в будущее и увидели блок «повторять пока не». Пока без сенсоров, но уже с пониманием, зачем этот цикл нужен.

А теперь — самое важное. Все, что вы прочитали, можно и нужно сделать самостоятельно. Теория без практики быстро забывается, а код, собранный своими руками, остается в памяти навсегда.

До встречи на новых уроках Scratch для детей!

Понравилась статья?

Читайте также:

    Подборка курсов

    Заполните заявку
    на доступ
    кбесплатным
    курсам для детей
    После заполнения формы вы получите доступ в личный кабинет
    Понадобится помощь взрослого*