You are viewing [info]katyal's journal

Екатерина Лажинцева [entries|archive|friends|userinfo]
Екатерина Лажинцева

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

DISCLAIMER, ВАЖНО ПРОЧИТАТЬ! [Nov. 12th, 2015|09:10 pm]
Информация, связанная с моей работой в компании Microsoft, приводится "как есть", без каких либо гарантий и обязательств. Все высказанное здесь – моё личное мнение, за которое Microsoft ответственности не несет. Подробнее читать здесь )
link

(no subject) [May. 4th, 2012|08:43 pm]
почему то слегка зацепили сегодняшние обсуждения о цитировании, речь идет об этой статье Максима Кронгауза, что мол, сейчас утеряно общее культурное пространство, легко попасть в группу (или, "страту", о как я люблю это слово, почти так же горячо, как "парадигму"), где приняты другие цитаты.

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

Не знаю, так ли уж это плохо, что нет цитат, общих для разных поколений, я уже писала, что люди на 10 лет моложе меня не воспринимали фразу "Вспоминайте иногда вашего студента". Кстати, нет общих цитат и в рамках одного и того же поколения. Может, это просто очередная примета времени, слишком много всего вокруг нас.
link1 comment|post comment

(no subject) [Apr. 1st, 2012|06:49 pm]
я тут прикинула, мы за эту зиму килограмм 40 семечек высыпали на кормушку. Плюс килограмм по 15 пшена и пшеничной крупы.

до сих пор еще снегири прилетают.
link2 comments|post comment

(no subject) [Mar. 17th, 2012|11:05 pm]
ходили со зверем (нашей собакой) в лес, навстречу нам два снегохода (гады, попортили мне мою лыжню). Зверь осторожно щемится сзади меня, на расстоянии 10 метров. Один из снегоходов задает вопрос:

- а волк за вами идет?

Эх, надо было бы ответить "Какой волк?", обернуться и испуганно заорать. А я лишь сказала

- ну вот, современные охотники лайку от волка не отличают
linkpost comment

Microsoft Kodu - 6 (Подсчет очков, а также логическое И) [Mar. 17th, 2012|10:53 pm]
[Tags|, ]

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

Подсчитываем очки )
linkpost comment

Microsoft Kodu - 5 (Простая игра, а также Путь) [Mar. 10th, 2012|06:53 pm]
[Tags|, ]

(Хотела написать "Пути", но вдруг кто-то решит, что я пропустила букву н в конце. Слово Путь более однозначно).

Когда показываешь Коду детям, то нельзя много времени тратить на объяснения, где и что, надо достаточно быстро переходить к созданию игры, чтобы они не потеряли интерес. Игра должна быть достаточно простой, чтобы ее можно было сделать очень быстро и чтобы дети не запутались в нюансах программирования. При этом еще и "мирной" т.е., не какой-нибудь стрелялкой, хотя, большинство игр именно этим и занимаются, но учителя не любят, когда показываешь детям что-то агрессивное. (А знаете, я их понимаю и поддерживаю). Это на взрослую аудиторию мы можем показать "Стреляя рыб", как мы это делали на TechEd Russia 2011. А детям надо и попроще, и помиролюбивее.

Тут для меня возникает другая сложность - придумать сюжет игры, уже неважно: мирной или стрелялки, хоть какой-нибудь! Пока я обхожусь такой простой идеей: над землей летает аэростат и разбрасывает яблоки (они падают на землю), а мотоциклист должен их собирать.

Условие, по которому аэростат бросает яблоко: каждые 5 секунд, т.е., по таймеру. Действие: "создать". Т.е., Аэростат программируется следующим образом

КОГДА ДЕЛАТЬ двигаться -> свободно
КОГДА таймер -> 5 сек ДЕЛАТЬ (действия ->) создать -> яблоко

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

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

Когда вы запустите игру, путей не будет видно, если только вы не выбрали тип Дорога (это можно сделать следующим образом: выберите инструмент Путь, но на земле щелкните не левой, а правой кнопкой мыши. Тогда вы увидите другие варианты: Стена и Дорога, они будут видимыми в вашем мире).

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

И тогда программа для Аэростата будет выглядеть след. образом:

КОГДА ДЕЛАТЬ двигаться -> по путям
КОГДА таймер -> 5 сек ДЕЛАТЬ (действия ->) создать -> яблоко

2 момента:
1. Я поленилась и не указала, по каким именно путям надо двигаться, но вообще-то лучше указывать цвет, т.к. в сложной игре можно создать пути для разных персонажей. Поэтому правильнее было бы
двигаться -> по путям -> (цвета -> ) белый

2. пусть вас не вводит в заблуждение яблоко на плитке "создать", что именно должно создаваться - обязательно надо указать следом. Например, мы бы могли создавать звезды, камни (вот бы они падали с неба!), и прочее.

И пусть байкер (мотоциклист) собирает эти яблоки. Действие - съесть яблоко. А вот условия вы можете выбрать разные (собственно, и действия тоже могут быть разными, но нам надо как то избавляться от этих яблок, иначе они просто завалят весь мир, поэтому мы просто будем их съедать).

    Итак, как мы можем есть яблоки:
  • самое очевидное: играющий вручную должен добраться до яблока и коснуться его;

  • но в Коду можно съесть яблоко, просто видя его, для этого есть условие "вижу -> (объекты ->) яблоко ". Чтобы игра не стала совсем уж абсурдной, можно указать, что
    вижу -> (объекты ->) яблоко-> (параметры -> ) рядом.
    С условием "вижу" игроку не надо с точностью до миллиметра подъезжать к яблоку и касаться его, достаточно оказаться рядом и видеть это яблоко

  • но можно еще больше "сжульничать", и яблоко не видеть, а слышать. В чем разница: чтобы видеть предмет (объект), надо быть развернутым к нему лицом. Чтобы слышать, достаточно быть в некоей окрестности от объекта;


Наверняка можно что-то еще придумать, оставляю вам самим поэкспериментировать.

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

КОГДА клавиши -> (разное ->) вверх ДЕЛАТЬ движение -> вперед
КОГДА клавиши -> (разное ->) вправо ДЕЛАТЬ поворот-> направо
КОГДА клавиши -> (разное ->) влево ДЕЛАТЬ поворот-> налево
КОГДА касание -> (объекты -> ) яблоко ДЕЛАТЬ съесть -> это

И давайте, наконец, запустим игру и посмотрим, что у нас получилось.

(А в следующем посте я буду рассказывать про подсчет очков.)
linkpost comment

Microsoft Kodu - 4 (Параметры мира) [Feb. 28th, 2012|11:17 pm]
[Tags|, ]

Ннемного про разные настройки

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

КОГДА ДЕЛАТЬ двигаться -> свободно

Обратите внимание, что он не выезжает за пределы земной поверхности. Это потому, что у по умолчанию, у вновь созданного мира - стеклянные стены. Это можно поменять, для этого есть инструмент Параметры мира, он - самый правый в панели инструментов. Когда вы его выберете, то попадете в достаточно своеобразное меню выбора параметров. Буквально вторым будет параметр "Стеклянные стены". Чтобы отменить его, просто щелкните на значок выключателя, (слева от слов "стеклянные стены"), он станет серым, т.е., этот параметр отключен. Чтобы вернуться обратно в свой мир, просто щелкните где-нибудь за пределами этого меню. Ради интереса запустите игру (помните? нажатием ESC), и байкер тут же свалится. Так что сами решайте, нужны ли вам стены у вашего мира.

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

3) А теперь добавим шайбу и попробуем запрограммировать ее движение. Мы тут же увидим, что возможности движения у шайбы - другие, не такие как у Коду или байкера, у нее есть движение вверх и вниз. Добавим в программу эти виды движения для шайбы

КОГДА: клавиша -> (число ->) 1 ДЕЛАТЬ двигаться -> вверх
КОГДА: клавиша -> (число ->) 2 ДЕЛАТЬ двигаться -> вниз
КОГДА ДЕЛАТЬ двигаться -> свободно

(я ставлю в скоби те подменю, которые нам надо выбирать,но в строке с правилом такая плитка не появляется)

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

4) добавим еще Аэростату команду создавать яблоки, пусть он каждые 5 секунд их сбрасывает на землю.

КОГДА таймер -> 5 секунд ДЕЛАТЬ (действие ->) создать -> яблоко

Запустите игру. Часть яблок упадет в пропасть, т.к. Аэростат летает не только над земной поверхностью. Часть - попадет на землю. И скорее всего, какое-нибудь яблоко попадет и на стену, т.е., получается, что у стеклянных стен есть высота. Поэтому еще непонятнее, почему шайба не может вылететь за пределы стены.

В качестве самостоятельного упражнения оставляю сделать управление движением через мышь
КОГДА мышь -> левая ДЕЛАТЬ двигаться -> к нему

и в ходе игры пощелкать мышью в разных точках мира.
linkpost comment

Microsoft Kodu - 3 (Программируем персонаж) [Feb. 24th, 2012|07:35 pm]
[Tags|, ]

Теперь займемся управлением персонажами

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

Нам же важно лишь знать, что это- event driven язык, т.е., все управляется событиями. Программа Коду состоит из строк, где каждая строка - это правило, сформулированное по принципу:

КОГДА что-то случилось, то ДЕЛАТЬ действие

То, что находится в части КОГДА, является условием, а то, что в части ДЕЛАТЬ - действием. Я регулярно рассказываю про Коду детям, и эту концепцию объясняю на примере светофора:

КОГДА горит красный свет ДЕЛАТЬ: стоять
КОГДА горит зеленый свет ДЕЛАТЬ: переходить улицу,

Если не задать никакого условия, то действие будет происходить всегда, безусловно. Я обычно задаю вопрос "Что мы делаем всегда?" (ответ через строчку), и дети, дав несколько неверных ответов (Ходим, Думаем, Смотрим), все таки как правило, дают мне тот ответ, что я жду: дышим (даже когда спим)

Как это выглядит на практике: возьмем ранее созданный мир с мотоциклистом (или Коду, кто из ботов вам больше понравился), убедимся, что мы в режиме редактирования мира, выберем инструмент работы с объектом, выберем бот или объект, который мы хотим запрограммировать, и щелкнем по нему правой кнопкой мыши.
В контекстном меню появится слово "Программа", и мы заходим в режим создания программы.
Т.е., у нас есть такие режимы:
1. Режим игры
2. Режим редактирования
, где есть инструменты
- Создать землю
- Создать холмы
- Создать водоем
- Работа с объектом
- - Программирование объекта
(выход из этого режима, как обычно, Esc)

где вы видите строку 1, и в ней 2 части : WHEN (КОГДА) и DO (ДЕЛАТЬ) (увы, эти 2 слова не поддались локализации).


ЧТобы быстро показать что-то детям, я делаю так, что наш персонаж просто ездит произвольно по земле. Т.е., не задаем никаких условий в части WHEN, а в части DO щелкаем по плюсику, и у нас появляется меню, какие действия мы можем выбрать. Мы просто выберем "двигаться",


Я писала, что некоторые переводы могут показаться странными, но я была ограничена вот этим меню, например, "повернуть" уже не влезало, поэтому действие пришлось назвать существительным.
Если выйти (ESC) в режим редактирования и потом еще раз esc - в режим игры, то мы увидим, что мотоциклист начал двигаться.

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



и в меню выбрать "свободно".

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

ЛО, Любопытная особенность. Выбрать просто подменю "стрелки" нам не поможет, это - любая из 4х стрелок, а нам нужно реагировать на каждую стрелку по-своему. Поэтому, нам нужно другое подменю: "разное", и там уже выбирать "влево", "вправо", "вперед". Это просто надо запомнить, что стрелки и пробел находятся в категории "разное".

Итак, чтобы запрограммировать движение вперед, в условии (т.е., в части WHEN) мы выбираем следующие команды меню:
клавиши -> разное -> вперед
а в разделе действие (DO), выбираем движение -> вперед

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

Получится вот так:


Тогда персонаж будет поворачиваться вокруг своей оси. После чего, надо опять наживать стрелку вверх, и он уже будет двигаться в новом направлении. Должно было получиться вот так:

ЛО - есть еще параметр движения "запад", "восток" и т.д. Можно попробовать по нажатию стрелки влево задать
двигаться -> куда-> запад

Попробуйте!!
linkpost comment

Microsoft Kodu - 2 (Персонажи и объекты ) [Feb. 21st, 2012|10:45 pm]
[Tags|, ]

Детям нравится создавать разные ландшафты, это может им заменить Paint или другой графический редактор, где они делают свои первые рисунки в стиле "каля-маля". Это вполне самостоятельный сценарий использования Коду, даже если и не переходить к программированию.

Но работа с персонажами позволяет создавать не просто миры, а еще и игры, что дает ребенку представление о программировании. Персонажи и объекты )
linkpost comment

Microsoft Kodu - 1.01 [Feb. 21st, 2012|06:13 pm]
[Tags|, ]

Лирические отступления  )
linkpost comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]