Игра «Крестики-нолики»: программирование Python в Minecraft

Этот пост написан пользователем Sports.ru, начать писать может каждый болельщик (сделать это можно здесь).

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

Начинаем создавать игру «Крестики-нолики» на Python

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

Для начала создадим Python-файл под названием Tic-tac-toe (в переводе с английского «крестики-нолики»). Нам понадобятся три модуля: Minecraft, Block и Time. В переменной mc будет храниться команда для проведений операций в игре. За состояние игры будет отвечать переменная game. В ней хранится булево значение true, которое будет разрешать программе продолжать игру. 

В pos, x, y и z поместим позиции персонажа. Последними тремя переменными мы будем пользоваться очень часто.

Загружаю...

Пишем код на Python для игры «Крестики-нолики»

Создаем команду setBlocks для игровой площадки. Она будет размером три на три блока. В переменные d и g определим команды для создания алмазного и золотого блоков. В numPlayer поместим цифру один. Эта переменная будет определять очередность ходов. Если цифра 1, то ходит тот игрок, у которого алмазный блок, иначе ход за игроком с золотым блоком. Данные условия мы пропишем позже. У нас на очереди создание функции play, где будем хранить всю логику игры. 

Заранее уведомим функцию, что будем изменять переменные из глобальной зоны видимости, то есть переменные, находящиеся вне функции. Переменная step будет контролировать процесс одного хода. Когда step будет равен false, ход будет окончен и настанет очередь ходить следующему игроку. Запустим цикл и в условие поместим переменную step. Программа будет останавливаться раз в миллисекунду. Создадим девять переменных. Дадим название от b1 до b9. В данных переменных помещены команды, считывающие ячейки игровой площадки. С помощью них можно будет понять, какой блок лежит в какой ячейке. 

Прописываем алгоритм определения победителя

Создадим большую условную конструкцию. Она будет считывать ячейки для определения победителя. Конструкция будет состоять из 8 блоков, так как существует именно такое число выигрышных комбинаций: три линии по вертикали, три линии по горизонтали и две линии по диагонали. При победе какого-либо игрока происходит вывод сообщения в чат, а переменные step и game приобретают значение false, тем самым прекращая работу программы.

Следующий огромный блок состоит из цикла for, который считывает касания по блокам. После касания по какому-либо блоку, на месте блока с деревянными досками появляется алмазный или золотой блок, меняется нумерация в переменной numPlayer, что означает передачу хода другому игроку. Step приравнивается к false, и информация о передаче хода выводится в чат.

Загружаю...

Цикл while, в условии которого переменная game, позволяет многократно выполнять логику игры до тех пор, пока game равна true. После того, как game будет равен false, цикл прекратится и площадка будет уничтожена. Информация об этом появится в чате.

После написания кода для игры «Крестики-нолики» на Python необходимо его протестировать. Все получилось? Отлично, поздравляем!

Этот и другие видеоуроки по Майнкрафту, а также другим направлениям программирования для детей можно изучить самостоятельно и бесплатно с помощью YouTube-канала школы Pixel.   

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

Этот пост опубликован в блоге на Трибуне Sports.ru. Присоединяйтесь к крупнейшему сообществу спортивных болельщиков!
Другие посты блога
Школа Пиксель