Construiește acest joc distractiv de numerologie în Python pentru a exersa manipularea șirurilor și a afla despre Tkinter.

FLAMES este un joc distractiv pentru copiii care susțin prieteni, iubiți, afectuoși, căsătorie și dușmani. Jocul ia numele a două persoane și, printr-o serie de pași, determină relația lor. Pentru a juca FLAMES, notați numele celor două persoane, eliminați literele care se potrivesc și obțineți numărul de caractere rămase.

Iterați peste literele cuvântului, FLAMES folosind numărul și eliminați acea literă. De exemplu, dacă numărul este patru, eliminați litera M. Numărătoarea începe din nou de la E. Repetați acest proces până când rămâne o singură literă, care denotă starea relației.

Modulul Tkinter

Pentru a construi jocul FLAMES, vei folosi modulul Tkinter. Tkinter este un modul multiplatform, simplu și ușor de utilizat, pe care îl puteți folosi pentru a crea rapid interfețe grafice cu utilizatorul. Unele dintre aplicațiile pe care le puteți crea ca începător folosind Tkinter includ a

instagram viewer
Player muzical, Calendar, Instrument de conversie a greutății, și a Joc de amestec de cuvinte.

Pentru a instala tkinter în sistemul dvs., executați următoarea comandă în terminal:

pip install tkinter

Cum să construiți un joc FLAMES folosind Python

Puteți găsi codul sursă al jocului FLAMES folosind Python aici Depozitul GitHub.

Importați modulul Tkinter. Definiți o funcție, remove_match_char() care acceptă două liste ca intrare. Utilizați o buclă for imbricată pentru a repeta peste ambele liste. Verificați dacă există un caracter care se potrivește; dacă există, eliminați-l din ambele liste și creați o a treia listă care concatenează ambele liste cu un asterisc între ele. Asteriscul acționează ca un delimitator.

Reveniți a treia listă împreună cu potrivirea găsită ca fiind adevărată. În cazul în care nicio literă nu se potrivește, returnați lista așa cum a fost creată mai sus.

din tkinter import *

defremove_match_char(lista 1, lista 2):
pentru i în interval (len (list1)):
pentru j în interval (len (list2)):
dacă lista1[i] == lista2[j]:
c = lista1[i]
list1.remove (c)
list2.remove (c)
lista3 = lista1 + ["*"] + lista2
întoarcere [lista3, Adevărat]
lista3 = lista1 + ["*"] + lista2
întoarcere [lista3, Fals]

Definiți o funcție, tell_status(). Preluați numele persoanei introduse de utilizator folosind obține() metoda pe widget-ul Intrare. Convertiți toate literele în minuscule și eliminați orice spații între ele. Convertiți numele într-o listă de caractere. Repetați acest lucru cu numele celei de-a doua persoane și setați continua variabilă la Adevărat.

deftell_status():
p1 = Person1_field.get()
p1 = p1.lower()
p1.inlocuire(" ", "")
p1_list = lista (p1)
p2 = Person2_field.get()
p2 = p2.inferioară()
p2.inlocuire(" ", "")
p2_list = lista (p2)
continua = Adevărat

Până când valoarea procedeului este adevărată, apelați remove_match_char() funcția și treceți cele două liste pe care tocmai le-ați creat. Stocați lista concatenată și starea steagului primite de la funcție. Găsiți indexul asteriscului pe care l-ați introdus și tăiați șirurile în două liste înainte și după el.

Numărați numărul de caractere din cele două liste și definiți o listă care stochează diferitele stări pe care le poate avea o relație conform jocului FLAMES.

in timp ce continua:
ret_list = remove_match_char (p1_list, p2_list)
con_list = ret_list[0]
continua = ret_list[1]
star_index = con_list.index("*")
p1_list = con_list[: star_index]
p2_list = con_list[star_index + 1:]

count = len (p1_list) + len (p2_list)
rezultat = ["Prieteni", "Dragoste", "Afecţiune", "Căsătorie", "Dusman", "Fratii"]

Până când literele din lista de rezultate nu sunt zero, stocați valoarea indexului de unde trebuie să efectuați tăierea. Dacă indicele este mai mare sau egal cu zero, tăiați listele în două părți și stocați șirul concatenat cu partea dreaptă adăugată prima în ordine. Acest lucru vă asigură că puteți număra în sens invers acelor de ceasornic.

Introduceți rezultatul în câmpul de stare la primul caracter pentru a afișa starea relației.

in timp ce len (rezultat) > 1:
split_index = (număr % len (rezultat) - 1)

dacă split_index >= 0:
dreapta = rezultat[split_index + 1:]
stânga = rezultat[: split_index]
rezultat = dreapta + stânga
altfel:
rezultat = rezultat[: len (rezultat) - 1]

Status_field.insert(0, rezultat[0])

Definiți o funcție, curata tot(). Utilizați funcția delete() de la primul index până la ultimul din cele trei câmpuri de intrare pentru a șterge conținutul afișat pe ecran. Utilizați metoda focus_set() pe primul câmp de intrare pentru a activa și indica utilizatorului să introducă valori în el.

defcurata tot():
Person1_field.delete(0, SFÂRŞIT)
Person2_field.delete(0, SFÂRŞIT)
Status_field.delete(0, SFÂRŞIT)
Person1_field.focus_set()

Inițializați instanța Tkinter și afișați fereastra rădăcină pasând-o clasei. Setați culoarea de fundal la alegere, dimensiunea și titlul aplicației dvs.

rădăcină = Tk()
root.configure (background=„#A020F0”)
root.geometry(„700x200”)
root.title(„Jocul FLĂCĂRI”)

Definiți trei etichete pentru a indica cele două persoane și starea lor de relație. Setați fereastra părinte în care doriți să le plasați, textul pe care ar trebui să-l afișeze, culoarea fontului, culoarea fundalului și stilurile de font. Adăugați niște căptușeală în direcția orizontală.

label1 = Etichetă (rădăcină, text=„Nume 1:”, fg=„#ffffff”,bg=„#A020F0”, font=("arial",20,"îndrăzneţ"), padx='20')
label2 = Etichetă (rădăcină, text=„Nume 2:”, fg=„#ffffff”,bg=„#A020F0”, font=("arial",20,"îndrăzneţ"), padx='20')
label3 = Etichetă (rădăcină, text="Statutul relatiei: ", fg=„#ffffff”, bg=„#A020F0”,font=("arial",20,"îndrăzneţ"), padx='20')

Utilizați managerul de grilă pentru a aranja cele trei widget-uri în prima coloană. Așezați prima etichetă în al doilea rând, a doua etichetă în al treilea rând și a treia etichetă în al patrulea rând.

label1.grid (rând=1, coloana=0)
label2.grid (rând=2, coloana=0)
label3.grid (rând=4, coloana=0)

Definiți trei widget-uri de intrare pentru a obține valorile celor două persoane și pentru a afișa starea acestora. Setați fereastra părinte în care doriți să plasați widget-urile și stilurile de font pe care ar trebui să le aibă.

Person1_field = Intrare (rădăcină, font=("arial", 15, "îndrăzneţ"))
Person2_field = Intrare (rădăcină, font=("arial", 15, "îndrăzneţ"))
Status_field = Intrare (rădăcină, font=("arial",15,"îndrăzneţ"))

În mod similar, utilizați managerul de grilă, pentru a organiza widget-urile în a doua coloană. Folosește ipadx proprietate pentru a seta numărul de pixeli care trebuie introdus în interiorul marginilor widget-ului.

Person1_field.grid (rând=1, coloana=1, ipadx="50")
Person2_field.grid (rând=2, coloana=1, ipadx="50")
Status_field.grid (rând=4, coloana=1, ipadx="50")

Definiți două butoane, Trimite și clar. Setați fereastra părinte în care doriți să le plasați, textul pe care ar trebui să-l afișeze, culoarea de fundal, culoarea fontului, funcțiile pe care ar trebui să le execute la clic și stilurile de font.

Utilizați managerul de grilă pentru a plasa butoanele în al patrulea și, respectiv, al șaselea rând al celei de-a doua coloane.

button1 = Buton (rădăcină, text="Trimite", bg=„#00ff00”, fg="negru", command=tell_status, font=("arial",13,"îndrăzneţ") )
button2 = Buton (rădăcină, text="Clar", bg=„#00ff00”, fg="negru", command=clear_all, font=("arial",13,"îndrăzneţ"))
butonul1.grilă (rând=3, coloana=1)
butonul2.grilă (rând=5, coloana=1)

The mainloop() funcția îi spune lui Python să ruleze bucla de evenimente Tkinter și să asculte evenimente până când închideți fereastra.

root.mainloop()

Pune toate codurile împreună și pregătește-te să joci jocul FLAMES la îndemâna ta.

Exemplu de ieșire din jocul FLAMES

La rularea programului de mai sus, programul afișează aplicația de joc FLAMES cu trei etichete, trei câmpuri de intrare și două butoane aranjate într-o grilă. La introducerea numelor „Tony Stark” și „Pepper Potts”, programul afișează starea relației lor ca „Dragoste”.

Jocuri pe care le puteți crea folosind Python

Pygame, Arcade, Panda3D, PyOpenGL și Pyglet sunt câteva module utile cu care puteți construi jocuri Python. Folosind Pygame, puteți crea jocuri 2D precum Super Mario Bros, Flappy Bird și Snake. Folosind Arcade puteți construi o clonă Pac-Man, Asteroizi sau Breakout.

Panda3D vă poate ajuta să construiți jocuri 3D precum Toontown Online, Pirații din Caraibe Online și Regatul magic virtual al Disney.