пятница, 23 апреля 2010 г.

Урок № 8Спрайт как порода

Открытая российская  коллекция спрайтов Scratch  на  Летописи -  http://letopisi.ru/index.php/Коллекция_спрайтов_Scratch . Важное направление этой коллекции – сбор спрайтов, которые могут быть в дальнейшем использованы для создания мультиагентных моделей. Одиночный спрайт содержит всю необходимую информацию, и при размножении такого спрайта мы получаем готовую модель, в которой спрайты ведут себя как агенты представители одной породы. Например, спрайт отдельной бабочки содержит всю информацию о том, как бабочка перемещается по экрану, и о том, как она реагирует на поведение других бабочек.

 

image

 Команда занять исходную позицию

 

image

 Команда сбора данных. Теперь все готово и у нас есть отдельный спрайт, который живет сам по себе. Бабочка летает по экрану.

 

image

Единичный спрайт, содержащий всю информацию


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

image


Модель стаи, в которой 15 бабочек.

Модель битвы драконов и демонов. Здесь тоже 1 спрайт, в котором спрятана вся модель.


Задание

  1. Предложите в группе свои спрайты, которые могут быть использованы в проектах.
  2. Предложите спрайты, в которых хранится поведение породы.

 

вторник, 6 апреля 2010 г.

Кострукционизм. Пейперт 1983



Видео, в котором Сеймур Пейперт общается с детьми. В это время за кадром рассказывают краткую историю конструкционизма. Объекты, двигающиеся на экране компьютера, дают новому поколению опыт, которого не было у предыдущих поколений. Дети учатся, экспериментируя с окружающим миром. Это основная идея конструкционизма Жана Пиаже. И, согласно этой идее школьные классы нужно было насыщать объектами, с которыми школьники могут экспериментировать, из которых они могут собирать и конструировать новые объекты. Клей, ножницы, песочницы, строительные блоки - все это необходимо для обучения младших школьников. Чтобы они создавали новые конструкции и параллельно с этим конструировали структуры собственного интеллекта. Пейперт работал с Пиаже в Швейцарии. И для него компьютер - средство для путешествия и привлечения в матландию. Как привлечь, как вовлечь человека в деятельность. И Пейперт с экрана говорит чудесные слова, что подход Лого больше относится к любви, чем к логике, больше относится к сексу, чем к абстракции.И передаточные механизмы. которые так покорили Пейперта в детстве и он через них понял математику и уравнения. И понял, что главное - увлеченность, отношения с объектом. Потому что он любил передаточные механизмы. Он любил их красоту. Они были для него объектами, с которыми удобно думать - Object to think with - И чарующие пластиковые черепахи, ползающие по полу. Дети ползающие по полу и экспериментирующие с концепциями. И девочка, изображающая черепаху, на левой руке у нее буква Л. (Мы тоже так играли с детьми). И много девочек в кадре все время. Потому что они все время думали, как научить человечество не бояться цифр.

(Среди событий-подарков, которыми горжусь - Пейперт варил мне кофе на своей кухне. И массу книжек потом присылал по почте).

Среди книг, которые я в начале 90х читал - была и Синтия Соломон. И потом в 2008 на Скретч конференции, когда в разговоре с незнакомой бабушкой как-то все от Скретч сдвинулось к воспоминаниям о Лого, я не выдержал - а зовут то тебя как? - А Синтией Соломон. (!!) А человек радом с ней не кто нибыдь а сам Брайн Харви. Тот самый! Logo Programming Style - в трех томах. Пожалуй, лучшая книжка про Лого.
boston2008 190

Вот ведь неожиданность - увидел у Харви, что он увлекся скретчем!


И сейчас Синтия ведет вики, где собрана масса старых фильмов - http://logothings.wikispaces.com/
И фрагмент видео с Пейпертом я оттуда утащил. Да - у нее же канал на YouTube - http://www.youtube.com/user/cynthiaso - она супер!

воскресенье, 4 апреля 2010 г.


Урок 7 Скретч-квест

 

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

Смена пространства = смена сцены.

Горизонтальный квест

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

На уроке № 5, когда мы учились делать презентацию, было показано, как можно перейти от одной сцены к другой - 

Когда щелкнут по сцене 

    если мышка слева, изменить фон на предыдущий

    если мышка справа, изменить фон на последующий.

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




Теперь мы можем перейти к сцене и научить ее реагировать на сообщения, которые посылает спрайт


Вот и всё! Можно посмотреть прогулку по Нижнему Новгороду, в которой используется этот сценарий - http://scratch.mit.edu/projects/patarakin/314196 


Квест, где можно двигаться во все стороны

Число пространств или комнат может быть очень большим, но для примера мы построим мир из 5 связанных между собой комнат. Кошка управляется клавишами - вниз, вверх, вправо и влево. Если клавиша стрелка вверх, то повернуться вверх пройти 5 шагов и установить значение переменной 0. Все остальные нажатия – вправо, влево и вниз – отрабатываются точно так же.



С кошкой все ясно. А вот мир вокруг кошки устроен сложнее, он должен помнить, откуда идет кошка и куда она должна попадать при ее соприкосновении с экраном.

 Как только кошка касается экрана, она посылает миру сигнал – передать "Уходим"

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



Теперь мы можем путешествовать из комнаты в комнату или из области в область.

Противники

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

 

 

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

 

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

 http://scratch.mit.edu/projects/patarakin/80523

Проект можно расширять новыми заданиями и новыми областями.

 

Задание

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

вторник, 23 марта 2010 г.

Scratch как театр 

Текст урока посвящается  Наталье Александровне Иванчевой, которая создала чудесную сказку про рыцарей и принцессу http://scratch.mit.edu/projects/electus/943526
Там у нее бьются рыцари в пустыни, плавают лебеди и сидит на берегу пруда прекрасная дама.
И все эти исполнители ролей управляются командами:



Мне очень близок и симпатичен подход, когда Scratch используется для создания цифровых историй и представлений. 
Интереснее всего про этот подход пишет Бренда Лаурел, которая специально думала и делала компьютерные игры для девочек и, кажется мне, что у нее книга или статья на эту тему была - Компьютер как театр
 
Главная идея этого урока, что создатель программы работает как режиссер спектакля. В Scrtatch эту метафору поддерживает так много элементов дизайна, что метафора театра здесь воспринимается естественно. Есть сцены, есть актеры, есть тексты пьесы. Собирать все это здесь в единый спектакль - одно удовольствие.


Текст пьесы

У нас есть текст пьесы и мы должны этот текст пьесы разбить на роли и раздать актерам. Каждый актер получает свою роль и свой текст. Этот текст своей роли он хранит в контейнере своего мозга. Мы не знаем как устроен контейнер и что там лежит. Мы говорим актеру - вот твой текст, помни его, будь готов весь этот текст проговорить. Если этот актер заболеет, то у нас должна быть возможность передать роль другому актеру.

Еще было бы здорово хранить и менять текст отдельно от актера. Например, если мы играем в России, то текст на русском. Поехали во Францию, просто поменяем текст и актеры будут произносить фразы на французском. Это чудесная возможность в обычном театре не доступна, но в компьютерном театре для нее нужно простое правило - хранить текст отдельно от формы его представления. 
Правило № 1 - хранить текст отдельно от поведения. 
- Где хранить? 
- В списке. Зайти в раздел Переменные  и Создать список. Про создание списка я писал в предыдущем уроке про презентации. Создали список - загрузили туда все фразы, которые говорит исполнитель. 

Назвал криво. Надо было назвать исполнителя Рыцарь 2, а локальный список назвать текст. Получился бы список под названием Рыцарь 2 текст.  -Yevgeny Patarakin 23.03.10 14:50 


Это и с точки зрения постановщика спектакля сильно упрощает дело. Захотим мы проверить, знает ли исполнитель свою роль. Так мы его можем попросить - расскажи весь свой текст: 

Если же мы захотим, чтобы актер последовательно проговорил все фразы, то мы добавим переменную и соберем такую конструкцию:  
   
 Про списки и их возможности и ограничения собрать отдельный урок. Здесь пока только правило хранения текстов. -Yevgeny Patarakin 23.03.10 16:06 

В продолжение темы про использование списков и создание интерактивных диалогов со зрителями есть отдельный рассказ Положи значение переменной  в мозг. С веселыми картинками:

Взаимодействие актеров

Подумаем о спрайтах как об актерах, которые участвуют в одном спектакле, и нам станет понятен весь ужас использования блока команды "Ждать". Представьте себе, что у актера роль, которая начинается во втором действии. И мы на полях его роли пишем 
Ждать 600 секунд,  
Показаться на сцене,
Сказать реплика 1 из текста
Ждать 5 секунд
Сказать реплика 1 из текста
И он, бедолага, сидит и учит свою роль с секундомером. А если что-то пойдет не так? Если свойства сцены изменились? Если партнер задержался или поспешил? Тогда все пойдет наперекосяк и весь наш спектакль развалится.

Что делать - использовать управляющие блоки "Передать" и "Когда я получу". Используем театрального суфлера или помощника, который подсказывает актерам, что им пора действовать. В принципе, каждый актер может помогать другому. Сказал свою реплику вслух и потом тихонечко, чтобы зрители не видели, прошептать партнеру - "А теперь твоя очередь, говори давай, Рыцарь Черного Лебедя". "Передать" - это как раз такие тайные сигналы, которыми обмениваются спрайты. Они не видны публики и служат для организации и синхронизации действий. Главное для организатора - развести сообщения для публики (Говорить, Думать) от сообщений для актеров. 

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


В качестве примера - диалог Лопатина и Дуняши из первого действия пьесы "Вишневый сад". Перед началом пьесы дадим актерам тексты их ролей. 

Создали список с текстом для Дуняши и экспортировали в этот список текст. 

Тоже самое сделаем и для Лопахина. Теперь у артистов есть роли.

Роли разучены (тексты в голове). Теперь мы хотим, чтобы партнеры начали обмениваться репликами.


Обратите внимание, как технично исполнители дергают друг друга за ниточки и передают ход. Сказал свою реплику и шепнул партнеру - "Теперь твоя очередь"  

В сети этот пример http://scratch.mit.edu/projects/patarakin/945353

Задание

Создавая примеры, в которых персонажи обмениваются фразами, обходитесь без блока  Ждать

пятница, 19 марта 2010 г.

Урок № 5 Собираем презентацию

Да, в Скретч можно собрать и презентацию. 
Из чего будет состоять презентация? Из перечня слайдов или сцен. 
Как мы будем добавлять сцены? Просто будем их рисовать. Выбираем объект Сцена. Новый фон -> Рисовать.


И в новом фоне мы можем выбрать текстовый режим и написать буквы:



 
На следующие фоны мы просто будем добавлять фотографии с учебными ситуациям. С добавлением фотографий проблем быть не должно. Только нужно помнить, мы создаем сетевой проект и не нужно его перегружать. Размер изображений - 480 на 320.
Сцена - управляемый объект, которому можно давать команды. Мы можем управлять сценой, щелкая мышкой по сцене. Щелкнем в правой части - будет следующий слайд. Щелкнем в левой - предыдущий. Интерес тут представляет только переменная фон# - значение этой переменной содержит текущее значение фона.  


В первом приближении - все. Многие презентации так и устроены - мы умеем листать слайды.
Задание 1. Предложите и реализуйте другие способы переключения слайдов. -Yevgeny Patarakin 19.03.10 16:42 
Задание 2. Найдите мелкую ошибку в скрипте  -Yevgeny Patarakin 19.03.10 17:28 

Теперь мы хотим украсить презентацию текстами и звуками. Например, если у нас представлена учебная ситуация, когда учитель бродит с учениками и цифровыми устройствами по лесу, то мы хотим, чтобы на этом слайде Кот или другой рассказчик говорил фразу "Современный учитель мобилен. Он в классе не сидит". 

И под каждую картину мы бы хотели добавлять свою фразу. Нам понадобится список. Мы заходим в сектор "Переменные" и создаем список.

Система нас спросит как называется наш список и мы, чтобы он был доступен для всех объектов. Мы выберем локальный список для своего рассказчика (так мы нашего Кота назвали)

Теперь у нас есть пустой список Рассказчик Рассказ и мы можем записывать туда свои фразы.

Не обязательно записывать фразу внутри среды Scratch. Мы можем экспортировать текст списка и он сохранится как текстовый файл, где на каждой строчке будет отдельная фраза - элемент списка.
И мы можем редактировать текст в обычном текстовом редакторе (Блокнот), а потом экспортировать текст в  в список импортировать.

Теперь пришло время использовать список. Мы хотим, чтобы в начале, когда запускается скрипт на экране был первый слайд и рассказчик бы давал пояснение. Пояснение у нас записано первым элементом в списке. Вот мы и пишем указание рассказчику: Сказать элемент 1 из списка.


Дальше еще интереснее. Мы хотим, чтобы всякий раз, когда переключается слайд, рассказчик говорил бы соответствующее слайду пояснение. Но, как рассказчик узнает, что произошло переключение слайда?
А пусть ему сцена расскажет! Сцена, она же исполнительный и умный объект. Мы добавляем команду Передать 

А рассказчику мы добавляем команды Когда я получу

В тексте добавлено еще управление звуками, но это уж для красоты. Главное сегодня - списки и обмен сообщениями
Задание №3 Примите участие в пополнении общей презентации
Задание №4 Создайте собственную презентацию с фотографиями и текстами
Задание № 5 Создайте два персонажа, которые будут вести диалог в ходе презентации -Yevgeny Patarakin 19.03.10 17:41 












среда, 17 марта 2010 г.

Пример с конем

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

Пояснения к уроку №3

Всадник на лошади приближается к камню


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


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

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



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


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

Да, обратите внимание, на всякий случай мы указали, что размер всадника соответствует размеру коня.

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


Готовый проект можно посмотреть и скачать - http://scratch.mit.edu/projects/patarakin/935409




четверг, 4 марта 2010 г.

Scratch day 2010 в России

Каждый год 22 мая во всем мире отмечается день Scratch. Учителя, студенты, школьники и их родители связывают с этим днем мероприятия по продвижению языка: встречи, семинары, выставки работ, мастер-классы.
Сейчас в списке запланированных  событий http://day.scratch.mit.edu/ 24 страны и 40 событий.   И ни одного из России. Если посмотреть на карту, то в центре большое пустое поле. 



Если мы посмотрим на прошлогодний день Scratch http://day.scratch.mit.edu/sd2009, то увидим только 2 события на карте России - в Нижнем Новгороде и Красногорске.
 Давайте в этом году изменим ситуацию. У нас есть боевая группа http://groups.google.ru/group/Scratch_ru. Нас в ней на данный момент 77 участников. Представляете как мы можем украсить карту событий! И не обязательно собирать большое мероприятие. 
Я, например, могу обещать, что мы соберем и покажем в сети проекты и методические материалы, которые сделают к этому моменту студенты нижегородского педагогического университета. Мы их соберем, расскажем о них в блоге http://ru-scarystories.blogspot.com/ - и это будет маленькое и хорошее дело. Поставим на карте точку - Нижний Новгород
А  еще могу обещать, что мы устроим выставку отдельных спрайтов на Летописи. Поставим точку - Москва.

Что сделать, чтобы поучаствовать
  • Зарегистрироваться на http://day.scratch.mit.edu/user/register Да, там все на английском, но простые вопросы про страну.
  • После того как пришлют подтверждение, заполнить событие, которое вы собираетесь провести. 
  • Если нужна поддержка - расскажите о возможном событии сначала в группе, попросите поддержки у других участников.

Давайте представим наши работы всему миру. Давайте попробуем сделать в рамках подготовки к дню Скретча совместные проекты. Это же такая классная возможность общаться со школьниками из других стран на языке проектов.