Как можно оценить настойчивую побудку второклассником часов в 7 утра воскресенья со словами «Папа! Пойдем учить Python»? Бесценно. Назрело желание поделиться наработками домашнего обучения детей программированию — систематизировать и законспектировать хотя бы для самого себя. Даже не столько обучению, сколько привлечения детского внимания и интереса.
Ведь согласно Сократу, человек — не сосуд для заполнения, а факел, который нужно зажечь. Изначально были попытки начать со Scratch, но несмотря на понятный графический интерфейс желание продолжать и что-то делать в среде быстро угасло. Minecraft пошел намного лучше, потому что дети уже были хорошо знакомы с игрой по мобильной версии и любимому creative mode.
Ради иллюстрации этой статьи я решился на запись скринкаста. Со второй или третьей попытки удалось сократить все до 20 минут. Все равно получилось растянуто, зато показаны основные моменты в динамике — все, что в тексте ниже.
Я не имею в виду создание и использование модов, это слишком высокий уровень входа. Первые попытки были после знакомства с первым изданием книги Minecraft. Программируй свой мир и удачной настройки сервера Bukkit на домашней машине. На данный момент (начало 2021 г.) есть второе издание, ссылка как раз на него а также несколько похожих книг других авторов.
Minecraft я сбился со счёта Какая версия Я имею в виду серия
Второе издание хорошо тем, что в нем исправлены ошибки в коде, которые были в первом, а также используется Python3 и более новая версия сервера. Вот тут на Хабре обзор первого издания от издательства Питер.
Сразу оговорка — игра запускается на одной домашней машине, обычно ноутбуке, в Windows. Серверные версии не пробовал, хотя было бы интересно посмотреть, если кто-то уже делал. Быстрый поиск показывает многочисленные русскоязычные курсы и школы программирования для детей, использующие Minecraft для обучения, но полноценного открытого руководства или хотя бы форума энтузиастов для обмена опыта — не видно.
На странице издательства Wiley есть несколько видео для упрощения, самое первое как раз об установке и настройке сервера Bukkit, отдельно установка Python (не Anaconda, из простого дистрибутива), тьюториал подключения к запущенному серверу и запуска в нем HelloWorld из питоновского IDLE.
Библиотека mcpi была изначально написана для запуска python-скриптов в Майнрафте на Raspberry Pi. Версия Minecraft для Raspberry Pi распространяется бесплатно. Сейчас mcpi работает под Windows. Качать отдельно ее не надо, все входит в состав Bukkit-сервера.
Школьник даже начальной школы очень легко осваивает клавиатуру, набор кода в окошке IDLE. API mcpi предоставляет не очень богатые, даже убогие, возможности для такого сложного мира, как Minecraft. Но для начала как раз то, что надо. Самое первое, что осваивает начинающий программист в Minecraft после подключения к миру — вывод сообщений в чат.
Далее — создание разного типа блоков и готовых параллелепипедов из них. Опыт показывает, что самое сложное для ребенка — понять, что такое 2D и 3D-координаты. Здесь пришлось отдельно провести урок с объяснениями на бумажке о движениях игрока по полю, о смещениях по вертикали.
Здесь большое неудобство доставляет система координат, выбранная в игре: вертикальная ось — это координата Y, а горизонтальная плоскость — XZ. Вот тут хорошо прорисовано. Лучше всего на начальном этапе повторять это несколько раз и обязательно задавать маленькие проверочные задачки. Надо просить указать координаты перемещения с нарисованными на бумаге осями.
Когда координаты освоены, нужно объяснить, как их можно использовать в игре. Возможностей в mcpi по большому счету всего две — установка блоков и перемещения игрока в пространстве мира. Когда это освоено на десятке заранее подготовленных примеров, можно дать ученику модифицировать готовые скрипты, но обязательно с предварительным обсуждением — а что, собственно, он хочет сделать. Лучше всего, если удастся организовать предварительное написание кода на бумаге, но в реальности это далеко не всегда получается.
Следующий логичный шаг — объяснение главных тем программирования — переменные и простые типы, циклы и условия. С объяснениями и показом примеров сразу же в игровом мире все эти сложные для школьников штуки схватываются удивительно быстро. Поначалу мы клали отдельные блоки разных типов, указывая номер.
Иногда игровая сессия слетала, если ставили какой-то недокументированный или опасный блок вроде тринитротолуола. А большой куб из лавы вполне может сжечь лес и траву на поверхности, устроив масштабный пожар. Вот здесь пример встречи люда и пламени. Трехмерные координаты хорошо демонстрируются установкой в цикле стеклянных столбов, вертикальных, наклонных свай, спиралей из блоков, уходящих в небо — и так далее.
О чем больше всего хотелось рассказать — небольшое усовершенствование процесса запуска питоновских скриптов из IDLE. Скажем, на ноутбуке, даже с подключенным вторым монитором, крайне неудобно перескакивать по Alt-Tab из клиента Майнкрафта в IDLE, чтобы запустить скрипт из окошка по F5. При таком перескоке клиент выходит из игрового времени в паузу.
Если скрипт что-то выводит в чат игры, можно успеть вернуться и увидеть результат. Найденное решение — в самом скрипте сканер сообщений игрока периодически проверяет лог игровой сессии в папке AppDataRoaming.minecraft, чтобы поймать сообщения из чата, распарсить их и выполнить соответствующую связанную питоновскую функцию, если таковая есть.
Игрок вводит сообщение в чате вроде /me build, сканер ловит запись в логе, и если для команды build есть функция, запускает ее. А функция, к примеру, строит дом в координате рядом с игроком с небольшим сдвигом. Здесь сразу естественно объясняется процедурный подход и немного структуры данных — хэш-таблица и вызов функции в Питоне по ее имени в строковой переменной. Такой режим хорош для ребенка тем, что вызов в игре своего личного кода происходит без переключения, выполняется в течении 2-3 секунд и выглядит в игре как вызов заклинания. А заклинание он только что написал сам.
Совсем не обязательно ограничиваться стандартным миром, загружаемым по умолчанию. Готовых миров — уйма. Главное убедиться, что он подходит к конкретной версии сервера Bukkit (не самой новой). Самое простое — положить скачанную и распакованную папку мира в папку сервера, прописать ее в конфиг server.properties
Перезапускаем bukkit server — если стартовал, можно теперь творить свои скрипты там
Из планов — хотелось бы посмотреть opensource-версию Майнкрафта — Minetest. Она написана на плюсах, по этой причине пишут об очень хорошей производительности и большом наборе игровых возможностей. Все-таки Майнкрафт начинает заметно тормозить несмотря на очень простую графику. Кроме этого в Minetest есть похожие возможности программирования, но на Lua.
Возможно, займемся этим в ближайшем будущем — статья в Вики. Хотелось бы еще попробовать другие реализации API Minecraft, но они все довольно старые, и на страничках в github прямо предупреждается, что максимальные версии сервера, где их библиотеки работают, очень и очень старые. Picraft — интересная библиотека. Кроме всего этого свет клином на Minecraft не сошелся. Что-то краем уха слышал об аналогичных возможностях в Roblox — тоже горячо любимой платформе.
Хотелось бы попробовать режим с несколькими игроками, каждый из которых может выполнять свой код. Очень интересно попытаться вставить в игру самостоятельных существ с собственным запрограммированным поведением. С большим интересом посмотрел на микрософтовский сайт Minecraft MakeCode, но глубоко не изучал.
Еще множество интересных примеров собраны на instructables.com с видеодемками и на сайте проектов под RaspberryPi, их тоже можно использовать. Самый лучший результат таких усилий — если у человека появляются идеи и стремление создать что-то самому. В современном мире один из самых дорогих ресурсов, за который идет борьба — человеческое внимание, привлеченный интерес. Если среди изобилия развлечений, гаджетов, картинок, youtube удалось зажечь и продержать увлечение до выработки умений и привычек — это уже огромное достижение.
- Python
- Учебный процесс в IT
- Дизайн игр
Источник: habr.com
Непроизвольное интервью Эрика Броса
Так что — да, в настоящее время наша цель состоит не в том, чтобы сделать игру быстрее. Мы стремимся, чтобы всё работало также как и раньше, но уже на более удобоваримом коде.
В последний раз я насчитал не меньше 20 программистов в Mojang. Вы показали порядка 90 000 изменений за 57 дней. Это, грубо говоря, порядка 79 изменений на человека в день. Простите, но это очень жалкое оправдание.
В настоящее время у нас 5 человек работает над кодом Minecraft Java, и эти две ветви были сделаны двоими из них. Да, в офисе у нас гораздо больше людей, а ещё больше есть в Майкрософте. Но только часть из них работает на Minecraft Java.
И некоторые внутренние изменения, которые произойдут в 1.13, приблизят реализацию этих задач.
Грустно видеть, как изменилось соотношение версий Java и Bedrock.
Ага, над Bedrock’ом работает больше 40 разработчиков.
Вообще, сейчас у нас больше людей работает на Java-версией, чем это было годами ранее и нам всё ещё есть над чем работать. Да, Microsoft сосредоточен на Bedrock, но команда занимающаяся обновлениями Java никуда не делась!
Источник: minecraftmain.ru
Ввиду или в виду?
Возможно, вы неоднократно ловили себя на том, что, отправляя сообщение или даже деловое письмо, вы затрудняетесь ответить, как пишется «ввиду»: слитно или раздельно. И если личное сообщение не так напрягает, то деловое письмо должно быть всё-таки написано грамотно, именно ввиду того, что тем самым даёт характеристику об отправителе.
Так вот – оба написания верны! А слитность или раздельность зависит исключительно от смысловой нагрузки, то есть от того, какая часть речи обозначается этим словом. Об этом мы сейчас и поговорим.
Предлог ввиду
Начнём с того, что ввиду пишется вместе при условии, что он – производный предлог. Напомним: производный – значит, происходит от служебной части речи (предлога) и самостоятельной (существительного). А также, если вы встретите в русской орфографии понятие «отыменный предлог», знайте – он и есть производный. А как мы пишем производный предлог? Только вместе.
Но как различить, это служебная часть речи или самостоятельная? Запоминаем: если «ввиду» можно заменить понятием, означающими причину, либо предлогом «из-за», значит, это служебная часть речи, которую пишем в одно слово.
- Ввиду (из-за) ваших регулярных опозданий я вынужден вас уволить!
- Машине пришлось резко затормозить ввиду (по причине) огромной выбоины посреди дороги.
- Александр пропустил важные соревнования ввиду (потому что ) того, что пропустил много тренировок.
- Ввиду (вследствие) предстоящей сессии тебе бы нужно серьёзней взяться за учёбу.
Синонимы
Из приведённых выше примеров видно, что синонимами предлога ввиду могут стать
- наречия потому,оттого;
- союз из-за;
- предлог вследствие;
- предлог плюс существительное по причине.
В любом случае все они означают причину дальнейших действий, и замена слова смысла не меняет.
Существительное в виду
Теперь перейдём к разбору того, как правильно пишется в/виду, – слитно или раздельно – если нет причинно-следственных отношений. Итак, раздельное написание в виду используется в случае, если это – существительное с предлогом. Существительное – вид. То есть в самом прямом смысле это означает – видеть что-то непосредственно, не выпускать из поля зрения. Например:
- Мы остановились в виду школы, чтобы видеть выходящих детей.
- Коммунальщики опилили деревья в виду светофора, чтобы пешеходы не волновались.
Синонимы
Как правило, синонимами в данном случае выступают наречия недалеко, вблизи, поблизости от, рядом. И в подавляющем большинстве случаев эти два слова неразрывно связаны с глаголом иметь. Так что достаточно просто запомнить: если кто-то что-то имеет в виду, то правописание велит делать это раздельно.
- Имей в виду, что сегодня обещали дождь, поэтому возьми зонт!
- Я имею в виду, что собирался сегодня пойти в театр, а не в кинозал.
- Он не имел в виду ничего плохого, когда предлагал вам одеться потеплее.
- Сегодня собрание в 17.00! – Буду иметь в виду, спасибо.
Словосочетание иметь в виду, как правило,означает принять во внимание, принять к сведению, что-то запомнить.
Как отличить предлог от существительного
Перечитывая вышесказанное, попробуем отличить, где же предлог, а где – предлог перед с существительным. Итак, если слово ввиду можно заменить причинно-следственной связью – это предлог, и правильным будет слитное написание.
Если же это словосочетание предваряет глагол иметь, либо оно имеет смысл территориальной близости – тогда понимаем, что это существительное и предлог и, следовательно, пишем их раздельно.
Пунктуация
Коснемся пунктуации, то есть знаков препинания: у пишущих часто возникают сомнения в нужности запятых. Развеем их. В обоих случаях никаких специальных знаков препинания не ставится: и в случае с предлогом, ни в случае предлога с существительным. За исключением тех случаев, когда ввиду/в виду выступает в составе вводной конструкции.
Ввиду
Приведем такие примеры для производного предлога:
- Ты, ввиду своих постоянных прогулов, будешь немедленно уволен!
- Мы вышли на улицу, но, ввиду начавшегося дождя, вернулись за зонтом.
- Ребята было расшалились, но, ввиду того, что начался тихий час, быстро разошлись по комнатам.
Иметь в виду
И подобные примеры для глагола с предлогом:
- А вы, я имею в виду вашу группу, совершенно забросили учебу!
- Игорь, имея в виду конкретно Наталью, кричал, что его никто не любит.
- И, знаешь, имей в виду, я всё помню!
Источник: correctno.ru