Как сделать игру «Сапер» на Python в Minecraft — урок по Python для детей и начинающих

Мы покажем, как создать игру «Сапер» внутри популярной вселенной Minecraft с помощью языка программирования Python.

Как сделать игру «Сапер» на Python в Minecraft — урок по Python для детей и начинающих

Учиться программировать на Python могут не только взрослые, но и дети. Уже в 10 лет ребенок способен разобраться в логике программирования и научиться писать код. Чтобы сделать обучение проще, можно изучать Python внутри игровой вселенной Minecraft: создавать здания и целые миры с помощью текстового кода. Знакомая детям среда, визуальный аспект и наглядность, элементы геймификации будут мотивировать ребят продолжать обучение. А еще дети сразу начнут ассоциировать программирование с чем-то интересным, поймут на примере, как кодинг помогает автоматизировать уже знакомые вещи и процессы.

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

В этом материале школа программирования для детей «Пиксель» расскажет, как написать игру «Сапер» на Python в Майнкрафт.

Как будет устроена игра

Как сделать игру «Сапер» на Python в Minecraft — урок по Python для детей и начинающих

Задача игрока в нашем проекте — кликать на блоки земли, за исключением того, под которым находится динамит. Если кликнуть на такой, то игра мгновенно заканчивается. Проиграть можно и в том случае, если игрок упадет с платформы. Нужно не терять концентрацию и постоянно просчитывать, где может оказаться динамит. Давайте приступим к программированию.

Полезные материалы

Для начала необходимо скачать Python и Minecraft на компьютер и настроить их. Мы подготовили видеоинструкции, в которых подробно объясняется, как установить программы.

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

Начинаем создавать программу: проектирование площадки

Создаем python-файл под названием sapper (в переводе с англ. это означает сапер). Импортируем необходимые для программирования библиотеки и модули: minecraft, block, random и time. Команду для подключения Python к Minecraft кладем в переменную mc. Позиция персонажа будет храниться в переменной pos.

Как сделать игру «Сапер» на Python в Minecraft — урок по Python для детей и начинающих

Позицию по каждой оси поместим в отдельные переменные: x, y, z. Проектировать игру мы будем на высоте 100, поэтому в переменную y мы поместили данное число.

Как сделать игру «Сапер» на Python в Minecraft — урок по Python для детей и начинающих

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

Как сделать игру «Сапер» на Python в Minecraft — урок по Python для детей и начинающих

Нам нужен счетчик блоков земли, под которыми нет динамита. Площадка будет состоять из девяти блоков. Значит восемь блоков не будут представлять опасности, и только один под собой будет иметь динамит. Для этой цели создаем переменную countGrasses и поместим в нее число 8.

Как сделать игру «Сапер» на Python в Minecraft — урок по Python для детей и начинающих

Площадку будем хранить в переменной grasses. Пока положим в нее пустой список. Создадим функцию place, которая с помощью циклов for будет создавать площадку 3 на 3. В обоих циклах будет один и тот же численный диапазон: от -1 до 2. Данный диапазон будет использован для строительства площадки. Переменная i будет прибавлена к оси x, а k — к z. Циклы будут использовать числа от -1 до 1. Число 2 использовано не будет. У оси y отнимаем единицу, чтобы блоки земли построились под ногами у персонажа. С помощью append все функции поместим в список grasses.

Как сделать игру «Сапер» на Python в Minecraft — урок по Python для детей и начинающих

Переменная game будет отвечать за состояние игры. Поместим в нее значение True. Это значит, что включен игровой режим. Выше мы создали функцию place, а теперь ее будем использовать. Не забываем рядом поставить пустые скобки.

Как сделать игру «Сапер» на Python в Minecraft — урок по Python для детей и начинающих
Площадка для игры
Площадка для игры

Запустим цикл while game. Будем останавливать его раз в 0.1 секунду. В переменные xr и zr поместим случайные числа от -1 до 1. К этим числам прибавляем координаты. К первой координате x, а ко второй — z. Функцией setBlock создадим динамит в случайном месте под площадкой.

Как сделать игру «Сапер» на Python в Minecraft — урок по Python для детей и начинающих
Площадка с динамитом
Площадка с динамитом

Добавляем условия в игру

Переменная searchMode будет отвечать за режим поиска. Поместим туда значение True. Это значит, что режим поиска включен. Нам нужны обновленные координаты персонажа, поместим их в переменную player. Добавим условие: если игрок окажется на высоте ниже ста, то уничтожится игровая зона, выключится режим игры и принудительно завершится режим поиска.

Как сделать игру «Сапер» на Python в Minecraft — урок по Python для детей и начинающих
Сообщение после падения с платформы
Сообщение после падения с платформы

После условия команду определения клика по блоку поместим в переменную hit. Циклом for будем считывать клики. Позицию клика поместим в переменную pos. Добавим условие: если игрок кликнул по блоку, под которым был динамит, то площадка уничтожается, выключается режим поиска и игры, а также прерывается цикл for с помощью команды break.

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

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

Как сделать игру «Сапер» на Python в Minecraft — урок по Python для детей и начинающих

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

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

Полный код для игры «Сапер» на Python:

import mcpi.minecraft as minecraft import mcpi.block as block import random import time mc = minecraft.Minecraft.create() pos = mc.player.getTilePos() x = pos.x y = 100 z = pos.z mc.player.setTilePos(x, y, z) tnt = block.TNT.id grass = block.GRASS.id air = block.AIR.id scores = 0 countGrasses = 8 grasses = [] def place(): for i in range(-1, 2): for k in range(-1, 2): grasses.append(mc.setBlock(x + i, y - 1, z + k, grass)) game = True place() while game: time.sleep(0.1) xr = random.randint(-1, 1) + x zr = random.randint(-1, 1) + z mc.setBlock(xr, y - 2, zr, tnt) searchMode = True while searchMode: player = mc.player.getTilePos() if player.y < 100: mc.postToChat("Мы упали с платформы! Игра окончена!") mc.setBlocks(x - 1, y - 2, z - 1, x + 1, y, z + 1, air) game = False break hit = mc.events.pollBlockHits() for h in hit: pos = h.pos if pos.x == xr and pos.y == y - 1 and pos.z == zr: mc.postToChat("О нет! Мы наткнулись на мину! Игра окончена!") mc.setBlocks(x - 1, y - 2, z - 1, x + 1, y, z + 1, air) searchMode = False game = False break else: mc.postToChat("Отлично! +1 Балл!") mc.setBlock(pos.x, pos.y, pos.z, air) scores += 1 countGrasses -= 1 mc.postToChat("Очки:" + str(scores)) mc.postToChat("Блоки земли без динамита:" + str(countGrasses)) if countGrasses == 0: place() countGrasses = 8 mc.setBlock(xr, y - 2, zr, air) searchMode = False break

Видеоурок по созданию игры «Сапер»:

1717 показов
836836 открытий
2 комментария

Комментарий недоступен

Ответить

Скачал ваш гайд, спасибо!

Ответить