Python

Изградете симулатор за хвърляне на зарове в Python

Изградете симулатор за хвърляне на зарове в Python
Заровете са прост куб, който генерира произволно число от 1 до 6, а симулаторът на зарове е компютърен модел, който хвърля заровете за потребителя. Симулаторът за хвърляне на зарове може да бъде реализиран по различни начини от Python. Ще бъдат необходими шест изображения, които ще се използват в симулатора. Модулът Pillow на Python се използва за показване на всяко изображение в Python, което не е инсталирано по подразбиране. Симулаторът за хвърляне на зарове може да бъде реализиран без GUI и GUI, както е показано в този урок.

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

Модулът за обработка на изображения ще изисква, ако искате да създадете симулатор за хвърляне на зарове с GUI. Изпълнете следните команди от терминала, за да актуализирате pip и да инсталирате модула Pillow.

$ python3 -m pip install --upgrade pip
$ python3 -m pip install --upgrade Възглавница

Пример-1: Създаване на прост симулатор за хвърляне на зарове

В този урок може да се създаде обикновен симулатор за хвърляне на зарове с помощта на случаен модул Python. Този скрипт ще генерира изхода на заровете в терминала. Така че в скрипта не се използва модул за обработка на изображения. Променлива с име зарове се използва за произволно вземане на произволно число от 1 до 6. The хвърлите заровете() функцията е дефинирана тук, за да генерира изхода въз основа на случайната стойност. Цикълът infinite while се използва в скрипта, за да хвърля заровете безкрайно много пъти, докато потребителят не напише нищо без 'y'.

# Импортиране на произволен модул
внос произволен
# Определете безкраен цикъл
докато е вярно:
# Генерирайте произволно число между 1 и 6
зарове = произволни.Randint (1, 6)
# Дефинирайте функцията за отпечатване на изхода въз основа на стойността на заровете
def roll_the_dice (зарове):
превключвател =
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]"

превключвател за връщане.вземи (зарове)
# Извикайте функцията
печат (roll_the_dice (зарове))
# Помолете потребителя да хвърли заровете отново
answer = input ("Искате ли отново да хвърлите заровете (да / не)? : ")
# Прекратяване на цикъла, ако потребителят въведе нещо без 'y'
ако отговорите != 'y':
изход (0)

Изход:

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

Пример-2: Създайте симулатор за хвърляне на зарове с изображения

Трябва да създадете шест изображения на зарове, преди да изпълните скрипта на примера. Можете да създавате изображенията, като използвате всяко приложение за създаване на изображения. Следните шест изображения са създадени за използване в скрипта на този пример. Съхранявайте изображенията на същото място, където ще създадете python файла, за да приложите симулатора.

Начинът за създаване на симулатор за хвърляне на зарове с GUI е показан в следващия скрипт. В Python съществуват много модули за създаване на GUI приложения. Модулът Tkinter се използва в този скрипт за внедряване на GUI базиран симулатор на хвърляне на зарове. Изображение и ImageTk модулите се използват в скрипта за показване на изображения на зарове. The случайни модул се използва за произволно избиране на изображението на зарове. В началото на скрипта обектът Tkinter е създал, за да определи размера и позицията на прозореца, където ще се показва изображението на заровете. Тук позицията на прозореца е настроена централно. След това променлива на списък е декларирала с шестте имена на изображения на зарове. случайни.Функцията choice () се използва за произволен избор на един индекс на името на изображението от списъка и получаване на името на изображението въз основа на стойността на индекса. expand = True е използвал във функцията pack () за добавяне на допълнително пространство при добавяне на приспособление в прозореца. В прозореца е добавен етикет за показване на изображението на зарове, а в прозореца е добавен бутон за показване на следващото изображение на зарове. The хвърлите заровете() функция е свързана с бутона за генериране на следващото изображение на зарове. Тази функция ще бъде извикана, когато потребителят натисне или щракне върху 'ХВЪРЛИТЕ ЗАРОВЕТЕ' бутон.

# Импортиране на модул Tkinter
внос tkinter
# Импортиране на модули Image и ImageTk
от PIL import Image, ImageTk
# Импортиране на произволен модул
внос произволен
# Дефинирайте обект за показване на главния прозорец на приложението
win = tkinter.Tk ()
# Задайте заглавието на главния прозорец
печеля.заглавие ("Хвърляне на зарове")
# Задайте височината и ширината на главния прозорец
печеля.геометрия ('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.Етикет (win, image = img)
lbl_image.изображение = img
# Задайте приспособлението за етикет в родителския прозорец
lbl_image.пакет (разгъване = Вярно)
# Определете функцията за промяна на изображението на заровете при щракване върху бутона
def roll_the_dice ():
img = ImageTk.PhotoImage (Изображение.отворен (произволен.избор (dice_images)))
# актуализиране на изображение
lbl_image.конфигуриране (image = img)
# запазете справка
lbl_image.изображение = img
"
Определете бутона, задайте текста на бутона и задайте командата
за извикване на функцията roll_the_dice ()
"
btn = tkinter.Бутон (win, text = 'ХВЪРЛЕТЕ ЗАРЪКА', команда = roll_the_dice)
# Задайте бутона вътре в родителския прозорец
btn.пакет (разгъване = Вярно)
# Обадете се на главния контур на Tkinter, за да отворите главния прозорец
печеля.mainloop ()

Изход:

Подобно на предишния пример, изображението на заровете ще бъде избрано произволно всеки път, когато бутонът бъде натиснат. В следващия изход изображението на зарове от шест е генерирано след изпълнение на скрипта.

Изображението на зарове от три е генерирано след натискане на бутона.

Заключение:

Два различни начина за създаване на симулатор за хвърляне на зарове с помощта на Python скрипт са обяснени в този урок. Ще помогне на читателите да разберат как този тип приложения могат да бъдат внедрени в Python.

Контролирайте и управлявайте движението на мишката между множество монитори в Windows 10
Двоен дисплей на мишката ви позволява да контролирате и конфигурирате движението на мишката между множество монитори, като забавя движенията му близо ...
WinMouse ви позволява да персонализирате и подобрите движението на показалеца на мишката на компютър с Windows
Ако искате да подобрите функциите по подразбиране на показалеца на мишката, използвайте безплатна програма WinMouse. Той добавя още функции, за да ви ...
Бутонът на левия бутон на мишката не работи в Windows 10
Ако използвате специална мишка с вашия лаптоп или настолен компютър, но бутонът на левия бутон на мишката не работи на Windows 10/8/7 по някаква причи...