Блог онлайн школы Пиксель

Как сделать игру «Сапер» на Python в Minecraft

Кодинг на Python — занятие, предназначенное и подходящее как для взрослых, так и для детей. Усвоить принципы разработки и составления кода может и школьник 9–13 лет.
Однако при обучении ребенка языку программирования нужен особый подход. Пригодится совмещение учебы и игры — и программирование на примере Minecraft как раз отвечает этой цели. При помощи Пайтона в Майнкрафте возводятся небоскребы и даже целые миры.

Плюсы программирования в Майнкрафте для детей:

  • знакомые интерфейс и среда, наглядность и игровой подход не оттолкнут ребят от длинных строчек кода;
  • совмещение любимой вселенной и IT-языка помогут создать ассоциацию программирования с увлекательным занятием, которым хочется заниматься;
  • дети увидят, как разработка упрощает известные по игре процессы, позволяя сокращать затраченное на них время;
  • вместо позиции потребителя ребенок примерит на себя роль создателя.
Обучение программированию в Майнкрафте — надежный способ заинтересовать подростка IT. Проектируются в Майнкрафте при помощи кода не только предметы, но также полноценные программы и мини-игры: например, можно сделать квест или бота. И, конечно, привлекательный вариант — воссоздание классических игр. Интересуясь и пытаясь понять, как сделать простую игру на Python, естественно и постепенно школьник научится кодить.
Детская школа программирования «Пиксель» делится тем, как сделать онлайн-игру на Python в Minecraft.

Об устройстве игры «Сапер» на Питоне

как сделать игру на python
Культовая игра в культовой игре — вызов принят: будем конструировать игру «Сапер». Суть «Сапера» в Майнкрафте не отличается от классической. Игрок перемещается по полю и старается не задеть динамит, попадание по которому чревато проигрышем. Проиграть также можно в том случае, если пользователь упадет с заданной платформы. Важно сохранять внимательность и концентрацию, вычисляя местонахождение динамита.
Однако у майнкрафтовской версии имеются нюансы. Переходим к формированию кода и разработке игры.

Установка программ: изучаем программирование в Minecraft

Чтобы понять, как сделать игру на Python, прежде всего нужно скачать на ПК Python и Minecraft, а затем настроить их. Предлагаем видеоролики с инструкциями об установке программ на разные операционные системы:
Процесс создания игры в видеоформате и код «Сапера» на Python мы добавили в конце статьи.

Старт создания «Сапера» на Пайтоне

Создаем новый файл (File — New file), называем его sapper — это слово переводится с английского как «сапер». Сохраняем файл в папку (File — Save as).
Затем загружаем файлы с шаблонами кода. Питон нужно подключить к Майнкрафту — помещаем соответствующую команду в переменную mc. Местонахождение героя хранится в переменной pos — так сервер считывает координаты персонажа.
сапер на питоне
Положения по осям — в переменных x, y, z. Игра конструируется на высоте 100 — в y помещаем это число.
сапер на python
Составим команду, переносящую героя в заданное положение. В роли игровых клеток — блоки земли, в роли мин — блоки динамита, также участвуют блоки воздуха. После задаем переменные. Баллы — в переменной scores.
сапер на пайтон
8 из 9 блоков безопасны, а под одним из них — взрывчатка. Понадобится счетчик безобидных элементов земли. Задаем переменную countGrasses, помещаем туда цифру 8.
как сделать онлайн игру на python
В переменной grasses — площадка с пустующим списком, он заполнится позднее. Функция place при участии for формирует квадратное поле из 9 блоков. В циклах — промежуток от -1 до 2 для сооружения поля. Переменная i прибавляется к оси x, а k — к z. В циклах задействуются числа от -1 до 1. От оси y вычитаем 1 — земля возводится под героем. Помещаем функции в grasses с append.
игра сапер на python
Переменная game связана с происходящим в игровой вселенной. Для включения игрового режима помещается True. Пришло время использовать функцию place.
как сделать простую игру на python
python сапер код
Переходим к запуску цикла while game. Задаем остановку раз в 0.1 сек. В переменные xr и zr помещаем произвольные цифры от -1 до 1 и присоединяем к ним данные о расположении. К 1 — x, а ко 2 — z. Функцией setBlock в рандомном пространстве под платформой создается взрывчатка.
как сделать сапер на python
как написать сапер на python

Добавление условных конструкций в игре «Сапер» на Python

Переменная searchMode связана с режимом поиска. Для его включения туда помещается True. Новую информацию о герое ставим в переменную player. Прописываем следующий ход развития событий: если юзер оказывается не выше 100 — игровая зона уничтожается, а игра заканчивается.
программирование в майнкрафт для детей
обучение программированию в майнкрафт
Команду, которая считывает нажатие на один из кубов, помещаем в переменную hit. При помощи for проверяем щелчки по блокам. Позицию клика размещаем в pos. Задаем еще одно условие: при нажатии по участку с динамитом поле уничтожается, производится выход из игры, командой break выполняется выход из цикла for.
python программируем с minecraft
программирование на примере minecraft
Если же игрок нажимает по другому блоку, то получает 1 балл. При этом блок исчезает, а у счетчика элементов без взрывчатки отнимается 1. Прибавляем условие: нажаты безвредные блоки — производится перезагрузка платформы и счетчика. Для прерывания действия цикла for задается break.
изучаем программирование в minecraft
Реализация игры завершена — надеемся, теперь вам понятно, как сделать «Сапер» на Python. Пришло время играть и испытывать удачу.
Если вам понравилось писать игру для Minecraft на языке Python, рекомендуем попрактиковаться в сотворении следующих проектов. Как это сделать, подскажут видеоролики по обучению программированию в Майнкрафте на YouTube-канале детской IT-школы «Пиксель». Если остались непонятные моменты — важно вернуться назад и прослушать неясный фрагмент еще раз.
Программировать в Minecraft на 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
Бесплатные видеоуроки Minecraft для детей