среда, февраля 15

Э1-У2. Шаг 3. Циклы в скрипте

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

Второй кирпичик повторить_число - цикл со счётчиком. Например, для рисования квадрата со стороной 40 шагов нужно 4 раза повторить одно и то же:

Если неизвестно, какое число раз нужно повторять цикл, то используют циклы с условиями. Всегда,_если_условие - цикл с предусловием. Он будет выполняться, пока указанное условие принимает значение истина. Например:
При выполнении этого блока команд спрайт будет перемещаться на 15 шагов, изменять костюм и ждать 0.1 секунды. Всё это будет повторяться до тех пор, пока его координата x не станет больше 200.

Ещё один цикл повторять_до_условие - цикл с постусловием. Он выполняется до тех пор, пока указанное условие не будет достигнуто. Предыдущий пример с походом спрайта до координаты 200 мы можем реализовать и с помощью этой команды:
Проверьте - результаты работы в том и другом случае должны быть одинаковыми. (Примечание. Если только координата x случайно не окажется равной 200. Подумайте, почему).

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

понедельник, февраля 13

Э1-У2. Шаг 2. Условия в скрипте

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

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

Первый кирпичик (если_условие_или_) - это полное ветвление. Он предусматривает развитие событий по двум сценариям. Если условие истинно, то будет выполняться первая часть скрипта, если ложно - то вторая, то есть та, которая вложена после или. Пример:

Второй кирпичик (если_условие_) - ветвление неполное. Все команды, вложенные внутрь этого кирпичика, будут выполняться только тогда, если условие истинно. Пример:

Третий кирпичик (ждать до_условие_) действует как пауза. Он прерывает выполнение скрипта до выполнения заданного условия. Пример:

Теперь попробуйте поиграть с Котом в "Угадалку". Он задумал число от 1 до 100. Нужно отгадать число как можно быстрее. Скрипт проекта содержит несколько условий. Подумайте, какие кирпичики здесь используются. В проект можно внести изменения и загрузить свой вариант на сайт.
Еще об этом проекте

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

При подготовке этого Шага использован материал с сайта А.Е.Бочкала. Там можно прочитать о ветвлениях в Скретч подробнее.

суббота, февраля 11

Э1-У2. Шаг 1. Отдельный спрайт - отдельный скрипт

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

Каждая рыбка имеет свой скрипт. Например, скрипт дискуса такой:

Отметим, что переменная x создана только для этого спрайта.

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

Можно дублировать объекты вместе с их скриптами:
Это позволит населить аквариум одинаковыми рыбками.

У дублированных объектов можно изменять костюмы. Например, можно продублировать спрайт рыбки-клоуна вместе со скриптом, а потом заменить костюм на костюм золотой рыбки. Скрипты двух этих рыбок также похожи. Вот скрипт золотой рыбки:

Вы уже заметили, что все скрипты стартуют по пробелу? Скрипт сцены не является исключением:

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

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

Еще об этом проекте

Еще об этом проекте

среда, февраля 8

Э1-У1. Шаг 9. Оранжевый ящик. Что такое переменные?

Оранжевый ящик переменных по умолчанию пустой. Нажмём Создать переменную и назовём её x. В ящике появляются новые кирпичики.

Переменная x может быть любым числом. На сцене для x появляется окошко, в котором будет показано её значение (по умолчанию x=0). Окошко можно скрыть, если нажать на галочку рядом с переменной в ящике команд.
Значение x можно установить, используя кирпичик поставить_в _ . Приём, оно может быть задано с клавиатуры в процессе выполнения скрипта, если использовать сенсоры. Например:

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

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

Рассмотрите пример, в котором считается сумма баллов.

Обратите внимание, что здесь используется не только список Баллы с внесёнными значениями, но и три переменных: Сумма, n (длина списка), k (для обозначения номера элемента). В скрипте используется жёлтый кирпичик повторения: n раз Сумма увеличивается на величину элемента под номером k. Номера элементов меняются последовательно. В результате в сумме оказываются все значения.


Попробуйте добавить значения в список и проследить, как будут меняться результаты. А может, вам удастся организовать ввод значений в список с клавиатуры через использование сенсоров. Подумайте, как можно изменить этот скрипт, чтобы производился расчёт не суммы, а среднего значения. Для примера составьте скрипт, рассчитывающий среднее из трёх чисел: 46, 24, 71.
Подсказка: среднее = (46+24+71)/3 = 47
О своих затруднениях и находках напишите в комментариях к данному посту.