Vaizdo apdorojimo modulio diegimas:
Vaizdo apdorojimo moduliui prireiks, jei norite sukurti kauliukų riedėjimo simuliatorių su GUI. Paleiskite šias komandas iš terminalo, kad atnaujintumėte pip ir įdėtumėte pagalvės modulį.
$ python3 -m pip install --upgrade pip$ python3 -m pip install --upgrade Pillow
1 pavyzdys: paprasto kauliukų riedėjimo treniruoklio sukūrimas
Šioje pamokoje naudojant „Python“ atsitiktinį modulį galima sukurti paprastą kauliukų riedėjimo simuliatorių. Šis scenarijus generuos kauliukų išvestį terminale. Taigi scenarijuje nenaudojamas joks vaizdo apdorojimo modulis. Kintamasis pavadintas kauliukai naudojamas atsitiktinai imti bet kurį skaičių nuo 1 iki 6. The roll_the_dice () funkcija yra apibrėžta čia, norint generuoti išvestį pagal atsitiktinę vertę. „Infinite while“ ciklas scenarijuje naudojamas kauliukams sukti begalinius kartus, kol vartotojas įveda bet ką be „y“.
# Importuoti atsitiktinį modulįimportuoti atsitiktinai
# Apibrėžkite begalinę kilpą
o tiesa:
# Sukurkite atsitiktinį skaičių nuo 1 iki 6
kauliukas = atsitiktinis.randintas (1, 6)
# Apibrėžkite funkciją, kaip spausdinti išvestį pagal kauliuko vertę
def roll_the_dice (kauliukas):
jungiklis =
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]"
grąžinimo perjungiklis.gauti (kauliukus)
# Iškvieskite funkciją
spausdinti (ritinys_kauliukas (kauliukas))
# Paprašykite vartotojo dar kartą mesti kauliukus
atsakymas = įvestis ("Ar norite dar kartą mesti kauliukus (taip / ne)? : ")
# Nutraukite kilpą, jei vartotojas įveda ką nors be „y“
jei atsakysi != „y“:
išėjimas (0)
Išvestis:
Aukščiau esančio scenarijaus išvestis skirsis kiekvienoje kilpos iteracijoje, kad būtų naudojami atsitiktiniai sveikieji skaičiai. Šiame išvestyje 5 generuojami pirmoje kilpos iteracijoje, rodomoje naudojant 5 nulius. Toliau vartotojas įrašė „y“ tęsti kilpą, o 4 sukūrė antroje ciklo iteracijoje ir rodė vertę naudodamas nulius, kaip ir anksčiau. Scenarijus baigėsi, kai vartotojas įveda tekstą „n“.
2 pavyzdys: sukurkite kauliukų riedėjimo treniruoklį su vaizdais
Prieš vykdydami pavyzdžio scenarijų, turite sukurti šešis kauliukų vaizdus. Vaizdus galite sukurti naudodami bet kurią vaizdų kūrimo programą. Šie šeši vaizdai buvo sukurti naudoti šio pavyzdžio scenarijuje. Laikykite vaizdus toje pačioje vietoje, kur sukursite python failą, kad įgyvendintumėte treniruoklį.
Kauliukų ridenimo treniruoklio su GUI sukūrimo būdas parodytas šiame scenarijuje. „Python“ yra daug modulių, skirtų kurti GUI programas. „Tkinter“ modulis šiame scenarijuje naudojamas diegiant GUI pagrįstą kauliukų riedėjimo simuliatorių. Vaizdas ir „ImageTk“ moduliai scenarijuje naudojami kauliukų vaizdams rodyti. The atsitiktinis modulis naudojamas atsitiktinai pasirinkti kauliukų vaizdą. Scenarijaus pradžioje objektas „Tkinter“ sukūrė lango dydį ir vietą, kur bus rodomas kauliukų vaizdas. Čia lango padėtis nustatyta centralizuotai. Tada sąrašo kintamasis deklaravo šešis kauliukų atvaizdų pavadinimus. atsitiktinis.funkcija choice () naudojama atsitiktinai pasirinkti vieną vaizdo pavadinimo indeksą iš sąrašo ir gauti paveikslėlio pavadinimą pagal indekso vertę. expand = True funkcija „pack ()“ naudojama norint pridėti papildomos vietos, kai langelyje pridedate valdiklį. Lange buvo pridėta etiketė, kad būtų rodomas kauliukų vaizdas, o lange buvo pridėtas mygtukas, rodantis kitą kauliukų vaizdą. The roll_the_dice () funkcija susieta su mygtuku, kad sugeneruotų kitą kauliukų vaizdą. Ši funkcija bus iškviesta, kai vartotojas paspaus arba spustelės mygtuką „RITKITE KAULĄ“ mygtuką.
# Importuoti „Tkinter“ modulįimportuoti tkinterį
# Importuokite „Image“ ir „ImageTk“ modulius
iš PIL importo atvaizdo, ImageTk
# Importuoti atsitiktinį modulį
importuoti atsitiktinai
# Apibrėžkite objektą, kad būtų rodomas pagrindinis programos langas
laimėti = tkinter.Tk ()
# Nustatykite pagrindinio lango pavadinimą
laimėti.pavadinimas („Kauliukai“)
# Nustatykite pagrindinio lango aukštį ir plotį
laimėti.geometrija ('350x280')
# Nustatykite lango padėtį
laimėti.eval ('tk :: Vieta langas . centras ')
# Apibrėžkite sąrašą su šešiais kauliukų vaizdų pavadinimais
kauliukų vaizdai = ['d1.png ',' d2.png ',' d3.png ',' d4.png ',' d5.png ',' d6.png ']
# Sukurkite bet kurį indeksą nuo 0 iki 6 atsitiktinai, kad gautumėte dabartinį kauliukų vaizdą
img = ImageTk.PhotoImage (Image.atviras (atsitiktinis.pasirinkimas (kauliukų nuotraukos)))
# Apibrėžkite etiketę, kad būtų rodomas pasirinktas vaizdas
lbl_image = tkinter.Etiketė (laimėti, vaizdas = img)
lbl_image.vaizdas = img
# Nustatykite etikečių valdiklį tėvų lange
lbl_image.paketas (išplėsti = tiesa)
# Apibrėžkite funkciją, kad pakeistumėte kauliukų vaizdą spustelėjus mygtuką
def roll_the_dice ():
img = ImageTk.PhotoImage (Image.atviras (atsitiktinis.pasirinkimas (kauliukų nuotraukos)))
# atnaujinti vaizdą
lbl_image.konfigūruoti (image = img)
# pasilikti nuorodą
lbl_image.vaizdas = img
"
Apibrėžkite mygtuką, nustatykite mygtuko tekstą ir nustatykite komandą
iškviesti funkciją roll_the_dice ()
"
btn = tkinter.Mygtukas (laimėk, tekstas = 'ROLL THE DICE', komanda = roll_the_dice)
# Nustatykite mygtuką tėvų lange
btn.paketas (išplėsti = tiesa)
# Norėdami atidaryti pagrindinį langą, paskambinkite „Tkinter“ pagrindiniam skyriui
laimėti.mainloop ()
Išvestis:
Kaip ir ankstesnis pavyzdys, kauliukų vaizdas bus pasirinktas atsitiktinai kiekvieną kartą, kai paspausite mygtuką. Šioje išvestyje sukurtas šešių kauliukų vaizdas, įvykdžius scenarijų.
Paspaudus mygtuką sugeneruotas trijų kauliukų vaizdas.
Išvada:
Šioje pamokoje buvo paaiškinti du skirtingi kauliukų metimo treniruoklio kūrimo būdai naudojant „Python“ scenarijų. Tai padės skaitytojams sužinoti, kaip tokio tipo programas galima įdiegti „Python“.