Roman Gurbanov
Программируем на Python в Minecraft

От автора

В 2016 году Крэйг Ричардсон выпустил книгу под названием “Программируем с Minecraft”.

Изучив ее с большим интересом и пройдя все задания, я решил немедленно запустить курс программирования в среде Minecraft в нашей школе программирования “Qiber School”.

Но, перед этим, написал несколько версий заданий, которые отличались от тех, что были в оригинальной книге. Очень хотелось экспериментировать и дать волю воображению!

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

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

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

И поскольку мой код начал отличаться от кода, данного в книге Крэйга Ричардсона, я решил подробно его комментировать, в деталях объясняя суть и цель каждой его строчки. Делал я это с каждым проектом, от первого до последнего. В оригинальной книге автор комментировал не весь данный код, и мне хотелось это исправить.

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

В результате всех этих изменений и дополнений, то, что начиналось как материал для курса по изучению программирования на Python в Minecraft, превратилось в отдельную книгу, которую вы сейчас и читаете.

Я неплохо позабавился, выполняя представленные здесь задания. Теперь ваша очередь! Объяснения и подсказки будут сопровождать вас на протяжении всего пути.

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

Удачи, я в вас верю!

Для кого эта книга?

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

Работая по данной книге и используя Python, вы будете создавать объекты и совершать действия в мире Minecraft. Такой подход поможет вам мгновенно видеть результат собственной работы и получать удовольствие от программирования с первых строчек кода. А минималистичный и простой синтаксис делает Python идеальным языком для начинающих программистов.

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

Что эта книга Вам даст?

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

Завершив все этапы, вы заслуженно сможете считать себя самыми настоящими программистами и программистками, способными писать программы!

Но, сначала, давайте посмотрим, что предлагает каждая глава.

“ Введение” расскажет вам о пользе программирования. Расскажет о том, что такое язык программирования Python, и о его возможностях. В этой главе мы также установим и настроим необходимые программы.

В Главе 1 “Переменные – это весело” мы познакомимся с переменными. Узнаем о том, что такое целые и вещественные числа. Научимся использовать модули и функции в Python. И даже отладим ошибки в коде.

Глава 2 “Строительство, большой взрыв и супер-прыжки!” научит нас выполнять математические операции в Python. Расскажет нам о том, как работать с аргументами, и поможет закрепить умение работы с модулями, функциями и более сложными координатами.

В Главе 3 “Строки в Python” мы приступим к работе со строками, научимся выводить данные при помощи функции print. И даже преобразовывать данные в численные и строковые при помощи функций. В этой главе мы также научимся работать с конструкцией обработки исключений try-except.

Глава 4 “Истина или Ложь? Булевы значения в Python”. Как вы поняли из самого названия, в этой главе мы пройдем булевы значения, а также научимся применять логические операции "and", "or", “not".

Как работать с книгой?

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

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

Что содержит каждая тема: Заголовок, Объяснение, Код проекта, Контрольные вопросы.

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

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

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

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

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

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

Зачем учиться программировать?

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

Познакомьтесь с Бериком, и с тем, как он провел сегодняшний день.

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

Берик открыл дверцу холодильника, с установленным на ней электронным экраном, показывающим температуру морозильной и холодильной камеры.

Пока завтрак разогревается в микроволновке, Берик листает Instagram-ленту и читает сообщения, пришедшие на Whatsapp.

Позавтракав, Берик вызывает такси через приложение. Этим холодным утром, таксист немного опоздал на работу. Он пытался завести двигатель своего авто, но бортовой компьютер давал сбой. “Придется везти на диагностику и искать ошибку”: ворчал таксист, но двигатель все же завелся.

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

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

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

Быть может, это маленькая частная ферма? И ее хозяину не по карману космический мониторинг, зато он осматривает собственный урожай через линзы беспилотного дрона, облетающего поля и посылающего команду “Запустить полив!” именно там, где оптические датчики дрона увидели признаки засухи.

Как бы там ни было, салат получился потрясающим на вкус. А деловая встреча невероятно продуктивной!

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

После насыщенного трудового дня Берик едет в фитнес-клуб. Заходя в раздевалку после интенсивной тренировки, Берик отмечает достигнутый прогресс в своем любимом фитнес-приложении.

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

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

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

Перечитайте день, который провел Берик, еще раз. Удивительно, не правда ли?

Многие могут сказать: “Хорошо, но Берик – современный житель какого-нибудь мегаполиса, и, конечно же, его жизнь тесно связана с технологиями. Но тех, кто не пользуется смартфоном или не ходит в офис, эта история не касается”.

Если вы так и подумали, позвольте показать вам кое-что.

Изображение 2. Фото: beltrakt.ru

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

Изображение 2. (Фото: reviewmachines.com)

А теперь посмотрите на изображение 2. Глядя на это, можно с уверенностью сказать, что тракторист не только работает с самым настоящим компьютером. Посмотрите на два крупных экрана с показаниями в кабине. Он еще и работает с большим потоком данных, поступающих через эти экраны.

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

Если мы поймем как устроен компьютерный код, то поймем как устроен современный мир. А это поможет нам лучше понять, кем мы хотим быть в этом мире, и над какими вещами хотим работать.

А если мы пойдем еще дальше, и научимся писать программы, то сможем делать еще больше. Давайте посмотрим что мы можем.

Создавать мобильные приложения, игры и веб-сайты

Маркус Персон не создал бы Майнкрафт, а Гейб Ньюэлл не создал бы Steam, если бы они не умели программировать. Для Маркуса Персона работа над Minecraft начиналась как хобби. Он тогда и подумать не мог, что однажды, благодаря своему увлечению, станет одним из самых богатых и известных людей на планете.

Создавать мультики и различные анимации

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

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

Писать моды для Minecraft

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

Программировать роботов и дронов

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

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

Принимать участие и побеждать в олимпиадах и хакатона

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

Участие в таких событиях дарит огромное количество опыта, учит командной работе, творческому мышлению и концентрации. А главное, – это весело!

Обязательно включите в свое обучение участие в интернет-олимпиадах и хакатонах. Это ускорит ваш учебный процесс.

Питон: что это за змей?

В 1980 году сотрудник голландского института CWI Гвидо ван Россум приступил к разработке мощного, но легко читаемого языка программирования Python.

Гвидо разрабатывал Python в свободное время для одного из проектов, в котором требовался скриптовый язык.

Работая над ним, Гвидо позаимствовал некоторые наработки из другого языка, над которым он также трудился. Это был язык ABC. И он был создан с целью обучения программированию.

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

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

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

Кстати, Гвидо назвал созданный им язык Питоном не в честь известного всем вида змеи, а в честь популярного в свое время комедийного теле-шоу “Летающий цирк Монти Пайтона”. Впрочем, сам язык все равно связывают именно со змеей. И сегодня, даже логотип Python представляет из себя изображение двух змей.

Гвидо ван Россум

Фото: facesofopensource.com

Посмотрите, какие потрясающие проекты создают на Python!

Социальные сети

Наверняка большинство из вас пользуются такими социальными сетями, как Facebook и Instagram. А знали ли вы, что обе сети были созданы с использованием Python? В этом нет ничего удивительного, ведь Python является одним из любимых языков профессиональных программистов, когда речь идет об алгоритмах обработки данных, которые активно используют социальные сети.

Python также используют и другие популярные социальные сети, среди которых есть Reddit, Pinterest, Quora и другие.

Поисковики

Если среди вас нашлись те, кто не использует ни Facebook, ни Instagram, то вы уж точно используете такие поисковые системы как Google, Yandex, Mail.ru или Yahoo!

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

Видео-игры

До сих пор мы говорили о Питоне, как о языке, который прекрасно подходит для алгоритмических задач по анализу и структуризации данных. Однако, его возможности в профессионалом мире простираются далеко за пределы этих достоинств.

Такие популярные игры как Civilization, Battlefield и даже World of Tanks используют этот мощный язык в своей архитектуре.

Стриминг-сервисы и облачное хранение

Идем дальше! Youtube, Netflix, Spotify используют Python. И даже Dropbox, в котором успел поработать создатель языка Python – Гвидо ван Россум. С которого, собственно, мы и начали рассказ о происхождении этого языка.

Космос и искусственный интеллект

Благодаря Python инженеры NASA запускают в космос ракеты, а специалисты сферы искусственного интеллекта создают человеческие подобия на основе нейронных сетей, обрабатывающих сотни тысяч точек данных и обучающих самих себя.

Итак, мы только что узнали, что благодаря Python, такие компании как Facebook, Instagram и множество других социальных сетей обслуживают миллиарды людей на планете. Благодаря Python работают крупнейшие поисковики, обрабатывая сотни миллионов запросов ежедневно. Python поддерживает своим мощным кодом популярнейшие игры, которыми увлечены сотни миллионов людей разных возрастов.

Youtube прокручивает сотни миллионов роликов, а Dropbox хранит огромные массивы данных. Наконец, ученные запускают ракеты в космос, а элементы искусственного интеллекта все глубже проникают в нашу жизнь. И все это благодаря языку программирования Python.

Устанавливаем все необходимое для работы

Для того, чтобы программировать на Python в мире Minecraft, нам понадобится 5 программ:

1 Minecraft

2 Python 3

3 Java

4 Minecraft Python API

5 Minecraft-сервер Spigot

Давайте скачаем и установим их вместе.

Я буду сопровождать свои действия по скачиванию и установке программ снимками с экрана и подробным описанием, чтобы вы могли в подробностях посмотреть и повторить весь процесс. Я использую Mac Book и операционную систему MacOS в своем примере, но не волнуйтесь. Процесс на Windows тот же, к тому же, если у вас возникнут какие-либо проблемы по установке программ, вы всегда можете написать на hi@qiber.org,и мы с командой поможем вам!

Установка Minecraft

Если у вас на компьютере уже установлена последняя версия игры Minecraft, можете пропустить эту главу.

Если же у вас не установлена Minecraft, вы можете приобрести ее на официальном веб-сайте: https://minecraft.net/ru-ru/

Зайдите на https://minecraft.net/ru-ru/ и нажмите на кнопку входа в правом верхнем углу экрана.

Если у вас еще нет учетной записи для Minecraft, создайте ее, нажав на “Зарегистрируйтесь здесь!” в нижней части экрана. Создав учетную запись, используйте ее для входа на minecraft.net, как показано на этом снимке экрана.

Зайдя в свою учётную запись, нажмите на кнопку “Загрузить” в левом верхнем углу экрана.

Конец ознакомительного фрагмента.

Текст предоставлен ООО «ЛитРес».

Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.