Piton

Izgradite simulator bacanja kockica u Pythonu

Izgradite simulator bacanja kockica u Pythonu
Kocka je jednostavna kocka koja generira bilo koji broj od 1 do 6, a simulator kockica je računalni model koji baca kockice za korisnika. Simulator bacanja kockica Python može implementirati na različite načine. Za izradu će biti potrebno šest slika koje će se koristiti u simulatoru. Modul Jastuk Pythona koristi se za prikaz bilo koje slike u Pythonu koja nije instalirana prema zadanim postavkama. Simulator bacanja kockica može se implementirati bez GUI i GUI, kao što je prikazano u ovom vodiču.

Instaliranje modula za obradu slike:

Modul za obradu slike bit će potreban ako želite stvoriti simulator bacanja kockica s GUI-jem. Izvršite sljedeće naredbe s terminala da biste ažurirali pip i instalirali modul Jastuk.

$ python3 -m pip install - nadogradnja pipa
$ python3 -m pip install --upgrade jastuk

Primjer-1: Stvaranje jednostavnog simulatora bacanja kockica

Jednostavni simulator bacanja kockica može se stvoriti pomoću Python random modula u ovom vodiču. Ova će skripta generirati izlaz kocke u terminalu. Dakle, u skripti se ne koristi modul za obradu slike. Varijabla imenovana kocke koristi se za nasumično uzimanje bilo kojeg broja od 1 do 6. The roll_the_dice () ovdje je definirana funkcija koja generira izlaz na temelju slučajne vrijednosti. Beskonačna petlja while koristi se u skripti za beskonačno bacanje kockica dok korisnik ne upiše ništa bez 'y'.

# Uvezi slučajni modul
slučajni uvoz
# Definirajte beskonačnu petlju
dok je Istina:
# Generirajte slučajni broj između 1 i 6
kocka = slučajna.randint (1, 6)
# Definirajte funkciju za ispis rezultata na temelju vrijednosti kocke
def roll_the_dice (kockice):
prebacivač =
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]"

povratni prekidač.dobiti (kockice)
# Pozovite funkciju
ispis (roll_the_dice (kocka))
# Zamolite korisnika za ponovno bacanje kocke
answer = input ("Želite li ponovno baciti kocku (d / n)? : ")
# Prekini petlju ako korisnik upiše bilo što bez 'y'
ako odgovor != 'y':
izlaz (0)

Izlaz:

Izlaz gornje skripte varirat će u svakoj iteraciji petlje za upotrebu slučajnih cjelobrojnih brojeva. U sljedećem izlazu, 5 se generira u prvoj iteraciji petlje koja se prikazuje pomoću 5 nula. Zatim je korisnik upisao 'y' za nastavak petlje, a 4 je generirao u drugoj iteraciji petlje i prikazao vrijednost koristeći nule kao prije. Skripta se prekida kada korisnik upiše 'n'.

Primjer 2: Stvorite simulator bacanja kockica sa slikama

Morate stvoriti šest slika kockica prije izvođenja skripte primjera. Slike možete stvoriti pomoću bilo koje aplikacije za stvaranje slika. Sljedećih šest slika stvoreno je za upotrebu u skripti ovog primjera. Držite slike na istom mjestu gdje ćete stvoriti python datoteku za implementaciju simulatora.

Način izrade simulatora bacanja kockica s GUI-om prikazan je u sljedećoj skripti. U Pythonu postoje mnogi moduli za stvaranje GUI aplikacija. Tkinter modul koristi se u ovoj skripti za implementaciju simulatora bacanja kockica temeljenog na GUI. Slika i ImageTk moduli se u skripti koriste za prikaz slika kockica. The slučajno modul koristi se za slučajni odabir slike kocke. Na početku skripte, objekt Tkinter stvorio je da definira veličinu prozora i položaj na kojem će se prikazati slika kocke. Ovdje je položaj prozora postavljen centralno. Dalje, varijabla popisa deklarirala je sa šest imena slika kockica. slučajno.funkcija choice () koristi se za slučajni odabir jednog indeksa imena slike s popisa i dobivanje naziva slike na temelju vrijednosti indeksa. expand = True je koristio u funkciji pack () za dodavanje dodatnog prostora prilikom dodavanja widgeta u prozor. U prozor je dodana oznaka za prikaz slike kocke, a u prozor je dodan gumb za prikaz sljedeće slike kocke. The roll_the_dice () funkcija se pridružila gumbu za generiranje sljedeće slike kocke. Ova će se funkcija pozvati kad korisnik pritisne ili klikne na 'KOLICI KOCKU' dugme.

# Uvoz modula Tkinter
uvoz tkinter
# Uvoz modula Image i ImageTk
s PIL import Image, ImageTk
# Uvezi slučajni modul
slučajni uvoz
# Definirajte objekt za prikaz glavnog prozora aplikacije
pobjeda = tkinter.Tk ()
# Postavite naslov glavnog prozora
pobijediti.naslov ('Kockanje kockica')
# Postavite visinu i širinu glavnog prozora
pobijediti.geometrija ('350x280')
# Postavite položaj prozora
pobijediti.eval ('tk :: PlaceWindow . centar')
# Definirajte popis sa šest imena slika kockica
dice_images = ['d1.png ',' d2.png ',' d3.png ',' d4.png ',' d5.png ',' d6.png ']
# Generirajte bilo koji indeks unutar 0 do 6 nasumično da biste dobili trenutnu sliku kockica
img = ImageTk.PhotoImage (Slika.otvoren (slučajan.izbor (slike_kocke)))
# Definirajte oznaku za prikaz odabrane slike
lbl_image = tkinter.Oznaka (pobjeda, slika = img)
lbl_image.slika = img
# Postavite widget s oznakom unutar nadređenog prozora
lbl_image.paket (proširiti = True)
# Definirajte funkciju za promjenu slike kocke kad se klikne gumb
def roll_the_dice ():
img = ImageTk.PhotoImage (Slika.otvoren (slučajan.izbor (slike_kocke)))
# ažuriraj sliku
lbl_image.konfigurirati (slika = img)
# zadržite referencu
lbl_image.slika = img
"
Definirajte gumb, postavite tekst gumba i postavite naredbu
za pozivanje funkcije roll_the_dice ()
"
btn = tkinter.Gumb (pobjeda, text = 'KOLICI KOCKU', naredba = roll_the_dice)
# Postavite gumb unutar nadređenog prozora
btn.paket (proširiti = True)
# Nazovite glavnu petlju Tkintera da biste otvorili glavni prozor
pobijediti.glavna petlja ()

Izlaz:

Kao i u prethodnom primjeru, slika kocke odabrat će se nasumično svaki put kad se pritisne gumb. U sljedećem izlazu, nakon izvođenja skripte generirana je slika šest kockica.

Slika kocke trojice generirana je nakon pritiska gumba.

Zaključak:

U ovom su uputstvu objašnjena dva različita načina stvaranja simulatora bacanja kockica pomoću Python skripte. Čitateljima će pomoći da znaju kako se ova vrsta aplikacije može implementirati u Python.

Vodič za bitku za Wesnoth
Bitka za Wesnoth jedna je od najpopularnijih strateških igara otvorenog koda koje trenutno možete igrati. Ne samo da se ova igra razvija već jako dugo...
0 A.D. Vodič
Od mnogih strateških igara tamo, 0 A.D. uspijeva se istaknuti kao sveobuhvatan naslov i vrlo duboka, taktička igra unatoč tome što je otvoren izvor. R...
Vodič za Unity3D
Uvod u Unity 3D Unity 3D moćan je motor za razvoj igara. Cross platforma je to što vam omogućuje stvaranje igara za mobilne uređaje, web, stolne račun...