Python

Bygg en terningkast-simulator i Python

Bygg en terningkast-simulator i Python
Terningen er en enkel terning som genererer et hvilket som helst tall fra 1 til 6, og terningssimulatoren er en datamodell som kaster terningen for brukeren. En terningkast-simulator kan implementeres på forskjellige måter av Python. Det kreves seks bilder for å lage som skal brukes i simulatoren. Pillow-modulen til Python brukes til å vise et hvilket som helst bilde i Python som ikke er installert som standard. Terningkast-simulatoren kan implementeres uten GUI og GUI, som vist i denne veiledningen.

Installere bildebehandlingsmodul:

Bildebehandlingsmodul vil kreve hvis du vil lage terningkast-simulatoren med GUI. Kjør følgende kommandoer fra terminalen for å oppdatere pipen og installere Pillow-modulen.

$ python3 -m pip install - oppgrader pip
$ python3 -m pip install - oppgrader pute

Eksempel 1: Opprette en enkel terningkast-simulator

En enkel terningkast-simulator kan opprettes ved hjelp av Python random module i denne opplæringen. Dette skriptet genererer terninguttak i terminalen. Så det brukes ingen bildebehandlingsmodul i skriptet. En variabel som heter terning brukes til å ta et hvilket som helst tall fra 1 til 6 tilfeldig. De roll_the_dice () funksjon er definert her for å generere utdata basert på den tilfeldige verdien. Den uendelige mens sløyfen brukes i skriptet for å kaste terningene uendelige ganger til brukeren skriver noe uten 'y'.

# Importer tilfeldig modul
importer tilfeldig
# Definer uendelig løkke
mens det er sant:
# Generer et tilfeldig tall mellom 1 og 6
terning = tilfeldig.randint (1, 6)
# Definer funksjonen som skal skrives ut basert på terningsverdien
def roll_the_dice (terning):
bytter =
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]"

returbryter.få (terning)
# Ring funksjonen
skriv ut (kast_terning (terning))
# Be brukeren om å kaste terningen igjen
svar = input ("Vil du kaste terningene igjen (å / n)? : ")
# Avslutt løkken hvis brukeren skriver noe uten 'y'
hvis svar != 'y':
utgang (0)

Produksjon:

Utdataene fra skriptet ovenfor vil variere i hver iterasjon av sløyfen for å bruke tilfeldige heltall. I den følgende utgangen genereres 5 i den første iterasjonen av sløyfen som vises ved hjelp av 5 nuller. Deretter skrev brukeren 'y' for å fortsette sløyfen, og 4 har generert i den andre iterasjonen av sløyfen og vist verdien ved hjelp av nuller som før. Skriptet er avsluttet når brukeren skriver 'n'.

Eksempel 2: Lag en terningkast-simulator med bilder

Du må lage seks terningbilder før du utfører skriptet i eksemplet. Du kan lage bildene ved å bruke et hvilket som helst bildeskapende program. Følgende seks bilder er laget for å brukes i skriptet til dette eksemplet. Hold bildene på samme sted der du vil lage python-filen for å implementere simulatoren.

Måten å lage en terningkast-simulator med GUI vises i følgende skript. Mange moduler finnes i Python for å lage GUI-applikasjoner. Tkinter-modulen brukes i dette skriptet til å implementere GUI-basert terningvalsesimulator. Bilde og ImageTk moduler brukes i skriptet for å vise terningbilder. De tilfeldig modulen brukes til å velge terningbildet tilfeldig. I begynnelsen av skriptet har Tkinter-objektet opprettet for å definere vindusstørrelse og posisjon der terningbildet skal vises. Her er vindusposisjonen satt sentralt. Deretter har en listevariabel erklært med de seks terningene. tilfeldig.valg () -funksjonen brukes til å tilfeldig velge en indeks av billednavnet fra listen og få bildenavnet basert på indeksverdien. expand = True har brukt i pakken () -funksjonen for å legge til ekstra plass når du legger til en widget i vinduet. En etikett er lagt til i vinduet for å vise terningbildet, og en knapp er lagt til i vinduet for å vise neste terningbilde. De roll_the_dice () funksjonen er assosiert med knappen for å generere neste terningbilde. Denne funksjonen vil bli ringt opp når brukeren trykker eller klikker på 'ROLL THE DICE' knapp.

# Importer Tkinter-modul
importer tkinter
# Importer Image- og ImageTk-moduler
fra PIL import Image, ImageTk
# Importer tilfeldig modul
importer tilfeldig
# Definer objekt for å vise hovedvinduet til applikasjonen
vinn = tkinter.Tk ()
# Sett tittelen på hovedvinduet
vinne.tittel ('Rolling Dice')
# Still inn høyden og bredden på hovedvinduet
vinne.geometri ('350x280')
# Still inn posisjonen til vinduet
vinne.eval ('tk :: PlaceWindow . senter')
# Definer listen med de seks terningene
dice_images = ['d1.png ',' d2.png ',' d3.png ',' d4.png ',' d5.png ',' d6.png ']
# Generer en hvilken som helst indeks innen 0 til 6 tilfeldig for å få gjeldende terningbilde
img = ImageTk.PhotoImage (bilde.åpen (tilfeldig.valg (terning_bilder)))
# Definer etikett for å vise det valgte bildet
lbl_image = tkinter.Etikett (vinn, bilde = img)
lbl_image.bilde = img
# Sett etikett-widgeten i foreldrevinduet
lbl_bilde.pakke (utvide = True)
# Definer funksjon for å endre terningbildet når du klikker på knappen
def roll_the_dice ():
img = ImageTk.PhotoImage (bilde.åpen (tilfeldig.valg (terning_bilder)))
# oppdateringsbilde
lbl_bilde.konfigurer (image = img)
# beholde en referanse
lbl_image.bilde = img
"
Definer knapp, angi knapptekst og angi kommando
for å ringe roll_the_dice () -funksjonen
"
btn = tkinter.Knapp (vinn, tekst = 'ROLL THE DICE', command = roll_the_dice)
# Sett knappen inne i foreldrevinduet
btn.pakke (utvide = True)
# Ring hovedløkken til Tkinter for å åpne hovedvinduet
vinne.mainloop ()

Produksjon:

Som i forrige eksempel vil terningbildet velges tilfeldig hver gang du trykker på knappen. I den følgende utgangen er terningbildet på seks generert etter at manuset ble utført.

Terningbildet på tre er generert etter å ha trykket på knappen.

Konklusjon:

To forskjellige måter å lage en terningrullende simulator ved hjelp av Python-skript har blitt forklart i denne veiledningen. Det vil hjelpe leserne å vite hvordan denne typen applikasjoner kan implementeres i Python.

Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...
Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...
OpenTTD vs Simutrans
Å lage din egen transportsimulering kan være morsom, avslappende og ekstremt fristende. Derfor må du sørge for at du prøver så mange spill som mulig f...