Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

Battlefield2, World of Tanks, The Sims4 ja Freedom Force on mõned tuhandetest hämmastavatest mängudest, mis on Pythoniga välja töötatud.

Tkinter, Pythoni standardliides Tk GUI tööriistakomplektile, on võimas moodul, mis muudab graafiliste kasutajaliideste loomise lihtsaks ja lõbusaks. Kasutage seda moodulit meeli pöörava värvimängu arendamiseks. Samuti saate teada, kuidas moodulit kasutada.

Mis on värvimäng?

Värvimängus kuvab programm ekraanil värvi nime, kuid erineva fondivärviga. Näiteks kuvab see sõna Kollane kasutades punast fondivärvi ja mängija peab sisestama teksti värvi.

See teabe ja taimeriga mittevastavus tekitab palju segadust ja loob meelelahutusliku mängukogemuse.

Tkinter ja juhuslik moodul

Värvimängu ehitamiseks kasutate tkinter moodul ja juhuslik moodul. Tkinter on platvormideülene, lihtne ja kasutajasõbralik GUI-moodul, mille abil saate kiiresti luua graafilisi kasutajaliideseid.

instagram viewer

Sellel on mõned kasulikud tööriistad, nagu sildi- ja sisestusvidinad ning paigutushaldurid, nagu pakk, ruudustik ja koht. Pakutavad funktsioonid on üsna lihtsad, muutes algajatel programmeerijatel hõlpsaks rakendusi ilma suurema vaevata kujundada. Tkinteri installimiseks oma süsteemi käivitage terminalis järgmine käsk:

pip install tkinter

Juhuslik moodul on sisseehitatud teek, mille abil saate luua juhuslikke valikuid. Seda moodulit kasutades saate arendada käsikriketimänge, numbrite äraarvamise mängud, maagilised kaheksa palli mängud, juhuslikud parooligeneraatorid, ja paljud teised.

Kuidas Pythoni abil värvimängu üles ehitada

Värvimängu lähtekood on saadaval a GitHubi hoidla ja seda saate MIT-i litsentsi alusel tasuta kasutada.

Alustage tkinteri ja juhusliku mooduli importimisega. Salvestage värvide nimed stringide loendina ja lähtestage skoor muutuja väärtuseks 0 ja aega jäänud kuni 60.

alates tkinter importida *
importida juhuslik

värvid = ["Punane", 'roheline', 'sinine', "must", 'roosa', 'valge', 'lilla', 'kollane', 'pruun']
skoor = 0
järelejäänud aeg = 60

Määratlege funktsioon nimega startGame() see võtab sündmus sisendargumendina. Funktsioon täidab kahte ülesannet. Esiteks kontrollib see, kas aega jäänud võrdub 60-ga. Kui jah, siis see kutsub ja käivitab countdown () funktsiooni. Teiseks kutsub see üles järgmine värv() funktsioon, mis segab ja kuvab mängu ajal värvi ja skoori juhuslikult.

defmängu algus(sündmus):
kui jäänud_aeg == 60:
countdown ()
nextColor()

Määratlege funktsioon nimega nextColor() ja viidata muutujatele globaalselt. Kui järelejäänud aeg on suurem kui 0, seadke fookus sisestusväljale, kasutades nuppu focus_set() meetod kandesildil (salvestatud muutujana e) määratletud koodi hilisemas pooles.

Kasuta saada () meetod kirje praeguse teksti stringina hankimiseks ja suurtähtede mittevastavuse vältimiseks selle muutmiseks väiketähtedeks. Kui see on võrdne ekraanil kuvatava värviga, suurendage skoori ühe võrra. Kasuta kustuta() funktsioon 0-st kuni sisestusvidina viimase registrini, et sisu kustutada.

defjärgmineVärv():
globaalne skoor
globaalne aega jäänud
kui järelejäänud_aeg > 0:
e.focus_set()
kui e.get().lower() == värvid[1].lower():
skoor += 1
e.delete(0, LÕPP)

Kasuta segamine () funktsioon loendis olevate üksuste ümberjärjestamiseks ja värvisildi kuvamiseks, mille tekst on loendi esimene värv ja fondivärv loendis teise värvina. Kasuta config() funktsioon sisse lülitatud scoreLabel (mis palub vajutada Enter), et kuvada skoori mängu seansi ajal.

 random.shuffle (värvid)
label.config (fg=str (värvid[1]), text=str (värvid[0]))
scoreLabel.config (text="Skoor:" + str (skoor))

Määratlege funktsioon nimega countdown () mis viitab järelejäänud aja muutujale ja vähendab seda ühe võrra. Kasuta config() funktsioon peal timeLabel ekraanile jäänud aja kuvamiseks ja pärast () funktsioon tagasihelistamiseks tagasiarvestus funktsioon pärast 1000 millisekundi või ühe sekundi viivitust.

deftagasiarvestus():
globaalne aega jäänud
kui järelejäänud_aeg > 0:
jäänud_aeg -= 1
timeLabel.config (text="Aega jäänud: " + str (jäänud_aeg))
timeLabel.after(1000, pöördloendus)

Initsialiseerige tkinteri eksemplar ja kuvage juuraken. Määrake akna pealkiri, mõõtmed pikslites ja taustavärv.

juur = Tk()
root.title("Värvimäng keerdkäiguga")
root.geometry("750x450")
root.configure (background='oranž')

Kasuta Silt vidin, mis juhendab mängijat mängujuhiste kohta. See aktsepteerib ülemakna, kuhu selle asetaksite. Tekst peaks näitama fondi tüüpi ja suurust koos sildi taustavärviga. Kasuta pakk () funktsioon sildividina plokkideks korraldamiseks enne nende paigutamist emavidinasse.

Samamoodi määrake skoori silt, mis juhendab kasutajat vajutama Sisenema mängu alustamiseks, samuti aja silt järelejäänud aja kuvamiseks. Veenduge, et kõigil siltidel oleks oranž taustavärv, nii et need sulanduksid taustaga. Määrake tühi silt, mis sisaldab värvinimesid nextColor() funktsiooni.

juhised = Silt (juur, tekst="Sisestage sõna värv, mitte tekst ;)", font=("Arial", 24), bg="oranž")
instrukcijas.pack()
scoreLabel = Silt (juur, tekst="Alustamiseks vajutage sisestusklahvi", font=("Arial", 24), bg="oranž")
scoreLabel.pack()
timeLabel = Silt (juur, tekst="Aega jäänud: " + str (jäänud_aeg), font=("Arial", 24), bg="oranž")
timeLabel.pack()
silt = Silt (juur, font=("Arial", 90), bg="oranž")

Nagu varem mainitud, kasutage mängija vastuse jäädvustamiseks sisestusvidinat. Oluline samm on sisestusklahvi sidumine sündmusega tkinteri aknas, nii et kui mängija seda vajutab, käivitub konkreetne funktsioon.

Selle saavutamiseks läbite võti ja startGame() toimivad parameetritena bind() funktsiooni. Lisaks kasutage pakk () ja focus_set() meetodid sisestussildi korraldamiseks ja fookuse seadmiseks, kui vajutate sisestusklahvi.

e = sisestus (font=20)
root.bind('', Mängu algus)
e.pack()
e.focus_set()

The mainloop() funktsioon käsib Pythonil käivitada tkinteri sündmusetsükli ja kuulata sündmusi (nt nupuvajutused), kuni akna sulgete.

root.mainloop()

Pange kogu kood kokku ja värvimäng on teie käeulatuses mängimiseks valmis.

Värvimängu väljund Pythoni abil

Värvimängu programmi käivitamisel ilmub ekraanile aken. Enter vajutamisel algab pöördloendus ja mängija peab hakkama sisestama sõna värvi. Iga õige vastuse korral suureneb skoor ühe võrra ja lõpuks kuvatakse lõpptulemus.

Mängude arendamine Pythoni abil

Python on fantastiline keel mängude arendamiseks. Keelt pole mitte ainult lihtne mõista ja kasutada, vaid see võimaldab ka igasuguse kogemustasemega mänguarendajatel luua hämmastavaid mängumaailmu, mis on huvitavad ja meelelahutuslikud.

Lisaks on loojatel palju võimalusi ideede ellu viimiseks tänu turul saadaolevatele erinevatele mänguarendusplatvormidele, nagu PyGame või Kivy.