Battlefield2, World of Tanks, The Sims4 și Freedom Force sunt câteva dintre miile de jocuri uimitoare care au fost dezvoltate cu Python.
Tkinter, interfața standard Python pentru setul de instrumente Tk GUI, este un modul puternic care face crearea interfețelor grafice cu utilizatorul ușoară și distractivă. Folosiți acest modul pentru a dezvolta un joc de culori uluitor. De asemenea, învață cum să folosești modulul pe parcurs.
Ce este jocul de culori?
În Jocul de culori, programul afișează numele unei culori pe ecran, dar într-o culoare diferită a fontului. De exemplu, afișează cuvântul Galben folosind o culoare roșie a fontului și jucătorul trebuie să introducă culoarea textului.
Această nepotrivire a informațiilor împreună cu cronometrul creează o multitudine de confuzii și creează o experiență de joc distractivă.
Modulul Tkinter și aleatoriu
Pentru a construi Jocul de culori, veți folosi tkinter modulul și Aleatoriu modul. Tkinter este un modul GUI multiplatform, simplu și ușor de utilizat, pe care îl puteți utiliza pentru a crea rapid interfețe grafice cu utilizatorul.
Are câteva instrumente utile, cum ar fi widget-urile de etichetă și intrare și manageri de aspect, cum ar fi pachetul, grila și locul. Funcțiile furnizate sunt destul de simple, ceea ce face ușor pentru programatorii începători să proiecteze aplicații fără prea mult efort. Pentru a instala tkinter în sistemul dvs., executați următoarea comandă în terminal:
pip install tkinter
Modulul aleatoriu este o bibliotecă încorporată prin care puteți genera alegeri aleatorii. Folosind acest modul, puteți dezvolta jocuri de cricket de mână, jocuri de ghicire a numerelor, jocuri magice cu bile opt, generatoare aleatorii de parole, si multe altele.
Cum să construiți un joc de culori folosind Python
Codul sursă al Jocului de culori este disponibil în format a Depozitul GitHub și este gratuit pentru utilizare sub licența MIT.
Începeți prin a importa tkinter și modulul aleatoriu. Stocați numele culorilor ca o listă de șiruri și inițializați Scor variabilă la 0 și timp ramas la 60.
din tkinter import *
import Aleatoriu
culori = ['Roșu', 'Verde', 'Albastru', 'Negru', 'Roz', 'Alb', 'Violet', 'Galben', 'Maro']
scor = 0
timp_remaining = 60
Definiți o funcție numită startGame() care ia eveniment ca argument de intrare. Funcția execută două sarcini. În primul rând, verifică dacă timp ramas este egal cu 60. Dacă da, apelează și execută numărătoare inversă () funcţie. În al doilea rând, se numește următoarea culoare() funcție care amestecă și afișează aleatoriu culoarea și scorul atunci când jocul este în desfășurare.
defstartGame(eveniment):
dacă timpul_rămas == 60:
numărătoare inversă ()
următoareaCuloare()
Definiți o funcție numită următoareaCuloare() și faceți referire la variabile la nivel global. Dacă timpul rămas este mai mare de 0, setați focalizarea pe câmpul de intrare folosind butonul focus_set() metoda de pe eticheta de intrare (stocat în variabilă e) definite în jumătatea ulterioară a codului.
Folosește obține() metodă de a prelua textul curent al intrării sub formă de șir și de a-l transforma în litere mici pentru a evita nepotrivirea cu majuscule. Dacă aceasta este egală cu culoarea afișată pe ecran, creșteți scorul cu unu. Folosește șterge() funcția de la 0 la ultimul index din widgetul de intrare pentru a șterge conținutul.
defurmătoarea Culoare():
global Scor
global timp ramas
dacă timpul_rămas > 0:
e.focus_set()
dacă e.get().lower() == culori[1].inferior():
scor += 1
e.delete(0, SFÂRŞIT)
Folosește amesteca() funcția de a reordona elementele din listă și de a afișa eticheta de culoare cu textul ca prima culoare din listă și culoarea fontului ca a doua culoare din listă. Folosește config() functia activata scoreLabel (care cere să apăsați Enter) pentru a afișa scorul pe măsură ce jocul este în sesiune.
random.shuffle (culori)
label.config (fg=str (culori[1]), text=str (culori[0]))
scoreLabel.config (text="Scor: " + str (scor))
Definiți o funcție numită numărătoare inversă () care face referire la variabila de timp rămasă și o decrește cu una. Folosește config() funcția pe timeLabel pentru a afișa timpul rămas pe ecran și după() funcția de apel invers numărătoarea inversă funcţionează după o întârziere de 1000 milisecunde sau o secundă.
defnumărătoarea inversă():
global timp ramas
dacă timpul_rămas > 0:
timpul_rămas -= 1
timeLabel.config (text="Timp rămas: " + str (time_remaining))
timeLabel.after(1000, numărătoare inversă)
Inițializați instanța tkinter și afișați fereastra rădăcină. Setați titlul, dimensiunile în pixeli și culoarea de fundal a ferestrei.
rădăcină = Tk()
root.title(„Joc de culori cu o răsucire”)
root.geometry(„750x450”)
root.configure (background='Portocale')
Folosește Eticheta widget pentru a instrui jucătorul despre instrucțiunile de joc. Acceptă fereastra părinte în care ați plasa-o. Textul ar trebui să afișeze tipul și dimensiunea fontului împreună cu culoarea de fundal a etichetei. Folosește ambalaj() funcția de a organiza widget-ul etichetă în blocuri înainte de a le plasa în widget-ul părinte.
În mod similar, definiți eticheta de scor pentru a instrui utilizatorul să apese introduce pentru a începe jocul, precum și o etichetă de timp pentru a afișa timpul rămas. Asigurați-vă că toate etichetele au o culoare de fundal portocalie, astfel încât să se amestece în fundal. Definiți o etichetă goală care va conține numele culorilor în următoareaCuloare() funcţie.
instrucțiuni = Etichetă (rădăcină, text=„Tastați culoarea cuvântului, nu textul ;)”, font=(„Arial”, 24), bg="portocale")
instructions.pack()
scoreLabel = Etichetă (rădăcină, text=„Apăsați Enter pentru a începe”, font=(„Arial”, 24), bg="portocale")
scoreLabel.pack()
timeLabel = Etichetă (rădăcină, text="Timp ramas: " + str (time_remaining), font=(„Arial”, 24), bg="portocale")
timeLabel.pack()
label = Etichetă (rădăcină, font=(„Arial”, 90), bg="portocale")
După cum am menționat mai devreme, utilizați widgetul de intrare pentru a captura răspunsul jucătorului. Un pas important este legarea tastei Enter cu un eveniment din fereastra tkinter, astfel încât atunci când jucătorul o apasă, să se execute o anumită funcție.
Pentru a realiza acest lucru, treci cheia și startGame() funcţionează ca parametri ai lega() funcţie. În plus, utilizați ambalaj() și focus_set() metode de organizare și setare a focalizării pe eticheta de intrare după ce apăsați tasta Enter.
e = intrare (font=20)
root.bind('' , beginGame)
e.pack()
e.focus_set()
The mainloop() funcția îi spune lui Python să ruleze bucla de evenimente tkinter și să asculte evenimente (cum ar fi apăsările de butoane) până când închideți fereastra.
root.mainloop()
Pune toate codurile laolaltă și ai la îndemână Jocul de culori cu o întorsătură gata de jucat.
Ieșirea jocului de culori folosind Python
La rularea programului Color Game, pe ecran apare o fereastră. La apăsarea Enter, începe numărătoarea inversă, iar jucătorul trebuie să înceapă să tasteze culoarea cuvântului. Pentru fiecare răspuns corect, scorul crește cu unul, iar în final, afișează scorul final.
Dezvoltarea de jocuri folosind Python
Python este un limbaj fantastic pentru dezvoltarea jocurilor. Limbajul nu este doar simplu de înțeles și utilizat, dar le permite și dezvoltatorilor de jocuri de toate nivelurile de experiență să creeze lumi de jocuri uimitoare, interesante și distractive.
În plus, creatorii au o gamă largă de opțiuni atunci când vine vorba de a da viață ideilor, datorită diverselor platforme de dezvoltare de jocuri disponibile pe piață, cum ar fi PyGame sau Kivy.