Об авторах. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Благодарности. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Введение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Что такое Minecraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Виртуальный мир . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Как появилась игра Minecraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
О программировании в Minecraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Кому адресована эта книга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Что вы узнаете . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Что вы должны знать . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Что потребуется для создания проектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Примечание для родителей и учителей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Изменения, внесенные во второе издание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
О структуре книги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Вспомогательный веб-сайт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Другие источники вспомогательной информации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Условные обозначения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Приключение1
Привет, мир Minecraft!. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Подготовка компьютера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Установка начального набора инструментов и Python . . . . . . . . . . . . . . . . . . . . 26
Запуск Minecraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Остановка сервера Minecraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Создание программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Запуск программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Остановка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Приключение2
Наблюдение за перемещениями персонажа. . . . . . . . . . . . . . . . . . . 37
Определение позиции персонажа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Начало . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6 ОГЛАВЛЕНИЕ
Вывод позиции персонажа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Улучшение отображения координат . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Использование postToChat для вывода координат в чат . . . . . . . . . . . . . . . . . . . 44
Введение в игровой цикл . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Создание игры Welcome Home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Использование инструкций if для создания волшебного коврика . . . . . . . . . . . 47
Проверка нахождения персонажа в определенном месте . . . . . . . . . . . . . . . . . 48
Создание волшебного коврика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Игра Welcome Home . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Использование геозон . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Обработка координат углов поля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Создание программы установки геозоны . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Перемещение персонажа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Дополнительные приключения с наблюдением за перемещениями персонажа . . . . . 61
Приключение3
Автоматическое создание сооружений. . . . . . . . . . . . . . . . . . . . . . . 63
Создание блоков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Создание нескольких блоков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Использование циклов for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Строительство многосоставных блоков с помощью цикла for . . . . . . . . . . . . . . 67
Строительство башни с помощью цикла for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Очистка пространства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Использование setBlocks для ускорения строительства . . . . . . . . . . . . . . . . . . . 70
Чтение ввода с клавиатуры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Строительство дома . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Строительство нескольких домов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Использование функций в языке Python. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Создание улицы из домов с помощью цикла for. . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Добавление случайных ковров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Генерирование случайных чисел . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Создание разных ковров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Дополнительные приключения со строительством . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Приключение4
Взаимодействие с блоками. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Выяснение информации о блоке,
на котором стоит персонаж . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Выясняем, насколько твердая почва под ногами . . . . . . . . . . . . . . . . . . . . . . . . . 91
Строительство волшебных мостов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7
Использование списков Python в качестве волшебной памяти . . . . . . . . . . . . . . . . . . . . 96
Эксперименты со списками . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Строительство исчезающих мостов с помощью списка Python . . . . . . . . . . . . . 99
Определение выбора блока . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Создание игры с поиском сокровищ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Создание функций и главного игрового цикла . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Создание сокровищ в небе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Сбор сокровищ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108
Добавление вывода подсказок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Добавление строительства моста . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Дополнительные приключения с блоками . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Приключение5
Использование файлов с данными. . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Чтение данных из файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Что можно делать с файлами данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Создание подсказок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Создание лабиринтов из файлов с данными . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Файлы CSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Строительство лабиринта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Создание трехмерного принтера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Подготовка вручную маленького объекта для трехмерной печати . . . . . . . . . 126
Создание трехмерного принтера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Создание сканера трехмерных конструкций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Создание копировального аппарата . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Создание каркаса программы копировального аппарата . . . . . . . . . . . . . . . . 135
Вывод меню . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Создание копировальной камеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Уничтожение копировальной камеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Сканирование объектов в копировальной камере . . . . . . . . . . . . . . . . . . . . . . 142
Очистка копировальной камеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Воспроизведение объектов в копировальной камере . . . . . . . . . . . . . . . . . . . 143
Представление файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Дополнительные приключения с файлами данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Приключение6
Строительство двух- и трехмерных структур. . . . . . . . . . . . . . . . . . 149
Модуль minecraftstuff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Создание линий, окружностей и сфер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Создание линий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
ОГЛАВЛЕНИЕ
8 ОГЛАВЛЕНИЕ
Создание окружностей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Создание сфер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Создание часов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Создание многоугольников . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Пирамиды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Дополнительные приключения с двух- и трехмерными фигурами . . . . . . . . . . . . . . . . 167
Приключение7
Наделение блоков способностью мыслить. . . . . . . . . . . . . . . . . . . . 169
Ваш блокфренд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Использование случайных чисел с целью разнообразить поведение друга . . . . . . . . 175
Большие фигуры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Вторжение инопланетян . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Дополнительные приключения в моделировании . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Приключение8
Большое приключение и коварные препятствия. . . . . . . . . . . . . . . 189
Игра внутри игры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Часть 1. Создание игрового поля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Часть 2. Создание препятствий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Стена . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Создание рва . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Создание ям-ловушек . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Часть 3. Игра . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Начало игры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Сбор алмазов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Ограничение по времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Наблюдение за положением персонажа. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212
Завершение уровня и начисление очков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Добавление сообщения о завершении игры . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Дополнительные приключения в путешествиях по миру Minecraft . . . . . . . . . . . . . . . . 216
Приложение A
Справочный материал.