Python

Создайте симулятор игры в кости на Python

Создайте симулятор игры в кости на Python
Игральные кости - это простой куб, который генерирует любое число от 1 до 6, а симулятор игры в кости - это компьютерная модель, которая бросает кости для пользователя. Симулятор игры в кости может быть реализован на Python по-разному. Для создания потребуется шесть изображений, которые будут использоваться в симуляторе. Модуль Pillow в Python используется для отображения любого изображения в Python, которое не установлено по умолчанию. Симулятор игры в кости может быть реализован без графического и графического интерфейсов, как показано в этом руководстве.

Установка модуля обработки изображений:

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

$ python3 -m pip install --upgrade pip
$ python3 -m pip install --upgrade Pillow

Пример-1: Создание простого симулятора броска игральных костей

В этом руководстве с помощью модуля Python random можно создать простой симулятор игры в кости. Этот скрипт сгенерирует вывод игральных костей в терминале. Итак, в скрипте не используется модуль обработки изображений. Переменная с именем игральная кость используется для случайного выбора любого числа от 1 до 6. В бросить кости() функция определена здесь для генерации вывода на основе случайного значения. Бесконечный цикл while используется в скрипте для бесконечного броска кости, пока пользователь не наберет что-нибудь без 'y'.

# Импортировать случайный модуль
случайный импорт
# Определить бесконечный цикл
в то время как True:
# Генерация случайного числа от 1 до 6
кости = случайный.рандинт (1, 6)
# Определите функцию для печати вывода на основе значения игральной кости
def roll_the_dice (игральные кости):
Switcher =
1: «[] \ n | 0 | \ n []»,
2: «[0] \ n | | \ n [0]»,
3: «[0] \ n | 0 | \ n [0]»,
4: «[0 0] \ n | | \ n [0 0]»,
5: «[0 0] \ n | 0 | \ n [0 0]»,
6: «[0 0] \ n | 0 0 | \ n [0 0]»

переключатель возврата.получить (кости)
# Вызов функции
print (roll_the_dice (игральные кости))
# Попросите пользователя снова бросить кости
answer = input ("Вы хотите снова бросить кости (да / нет)? : ")
# Завершить цикл, если пользователь вводит что-нибудь без 'y'
если ответ != 'y':
выход (0)

Выход:

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

Пример-2: Создание симулятора игры в кости с изображениями

Перед выполнением сценария примера необходимо создать шесть изображений игральных костей. Вы можете создавать изображения с помощью любого приложения для создания изображений. Следующие шесть изображений были созданы для использования в скрипте этого примера. Храните изображения в том же месте, где вы создадите файл python для реализации симулятора.

Способ создания симулятора игры в кости с графическим интерфейсом показан в следующем скрипте. В Python существует множество модулей для создания приложений с графическим интерфейсом. В этом скрипте используется модуль Tkinter для реализации симулятора игры в кости на основе графического интерфейса. Изображение а также ImageTk в скрипте используются модули для отображения изображений игральных костей. В случайный модуль используется для случайного выбора изображения игральных костей. В начале скрипта был создан объект Tkinter для определения размера окна и положения, в котором будет отображаться изображение игральной кости. Здесь положение окна установлено централизованно. Затем объявлена ​​переменная списка с шестью именами изображений игральных костей. случайный.Функция choice () используется для случайного выбора одного индекса имени изображения из списка и получения имени изображения на основе значения индекса. expand = True использовалось в функции pack () для добавления дополнительного места при добавлении виджета в окно. В окно была добавлена ​​метка для отображения изображения игральных костей, а в окно добавлена ​​кнопка для отображения следующего изображения игральной кости. В бросить кости() функция связана с кнопкой для создания следующего изображения игральной кости. Эта функция будет вызываться, когда пользователь нажмет или щелкнет 'БРОСИТЬ КОСТИ' кнопка.

# Импортировать модуль Tkinter
импортный tkinter
# Импортировать модули Image и ImageTk
из PIL импорт изображения, ImageTk
# Импортировать случайный модуль
случайный импорт
# Определить объект для отображения главного окна приложения
win = tkinter.Тк ()
# Установить заголовок главного окна
выиграть.title ("Катящаяся игральная кость")
# Установить высоту и ширину главного окна
выиграть.геометрия ('350x280')
# Установить положение окна
выиграть.eval ('tk :: PlaceWindow . центр')
# Определить список с шестью именами изображений в кости
dice_images = ['d1.png ',' d2.png ',' d3.png ',' d4.png ',' d5.png ',' d6.png ']
# Сгенерировать любой индекс в пределах от 0 до 6 случайным образом, чтобы получить текущее изображение игральной кости
img = ImageTk.PhotoImage (Изображение.открытый (случайный.выбор (dice_images)))
# Определить метку для отображения выбранного изображения
lbl_image = tkinter.Ярлык (победа, изображение = img)
lbl_image.image = img
# Установите виджет метки внутри родительского окна
lbl_image.pack (expand = True)
# Определить функцию для изменения изображения игральных костей при нажатии кнопки
def roll_the_dice ():
img = ImageTk.PhotoImage (Изображение.открытый (случайный.выбор (dice_images)))
# обновить изображение
lbl_image.настроить (изображение = img)
# сохранить ссылку
lbl_image.image = img
"
Определите кнопку, установите текст кнопки и установите команду
для вызова функции roll_the_dice ()
"
btn = tkinter.Кнопка (win, text = 'ROLL THE DICE', command = roll_the_dice)
# Установите кнопку внутри родительского окна
кстати.pack (expand = True)
# Вызвать главный цикл Tkinter, чтобы открыть главное окно
выиграть.mainloop ()

Выход:

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

Изображение трех кубиков было сгенерировано после нажатия кнопки.

Заключение:

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

Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...
Игры HD Remastered для Linux, ранее не выпускавшиеся для Linux
Многие разработчики и издатели игр придумывают HD-ремастеры старых игр, чтобы продлить жизнь франшизы, порадовать фанатов, требующих совместимости с с...
Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...