Izveidojiet šo jautro numeroloģijas spēli Python, lai praktizētu manipulācijas ar virknēm un uzzinātu par Tkinter.

FLAMES ir jautra spēle bērniem, kas iestājas par draugiem, mīļotājiem, mīļajiem, laulībām un ienaidniekiem. Spēle ņem divu cilvēku vārdus un ar virkni darbību nosaka viņu attiecības. Lai spēlētu FLAMES, pierakstiet abu cilvēku vārdus, noņemiet atbilstošos burtus un iegūstiet atlikušo rakstzīmju skaitu.

Atkārtojiet vārda FLAMES burtus, izmantojot skaitītāju, un noņemiet šo burtu. Piemēram, ja skaits ir četri, noņemiet burtu M. Skaitīšana atkal sākas no E. Atkārtojiet šo procesu, līdz paliek tikai viens burts, kas apzīmē attiecību statusu.

Tkintera modulis

Lai izveidotu spēli FLAMES, tiks izmantots Tkinter modulis. Tkinter ir vairāku platformu, vienkāršs un lietotājam draudzīgs modulis, ko varat izmantot, lai ātri izveidotu grafiskās lietotāja saskarnes. Dažas no lietojumprogrammām, kuras varat izveidot kā iesācējs, izmantojot Tkinter, ietver a Mūzikas atskaņotājs, Kalendārs, Svara konvertēšanas rīksun a Vārdu sajaukšanas spēle.

instagram viewer

Lai instalētu tkinter savā sistēmā, terminālī palaidiet šādu komandu:

pip instalēt tkinter

Kā izveidot spēli FLAMES, izmantojot Python

Šajā sadaļā varat atrast spēles FLAMES pirmkodu, izmantojot Python GitHub repozitorijs.

Importējiet Tkinter moduli. Definējiet funkciju, remove_match_char() kas pieņem divus sarakstus kā ievadi. Izmantojiet ligzdotu cilpu, lai atkārtotu abus sarakstus. Pārbaudiet, vai ir atbilstoša rakstzīme; ja ir, noņemiet to no abiem sarakstiem un izveidojiet trešo sarakstu, kas savieno abus sarakstus ar zvaigznīti starp tiem. Zvaigznīte darbojas kā norobežotājs.

Atgriezt trešo sarakstu kopā ar atrasto atbilstību kā Patiess. Ja neviens burts neatbilst, atgrieziet sarakstu, kā izveidots iepriekš.

no tkinter imports *

defRemove_match_char(saraksts1, saraksts2):
priekš i iekšā diapazons (len (saraksts1)):
priekš j iekšā diapazons (len (saraksts2)):
ja saraksts1[i] == saraksts2[j]:
c = saraksts1[i]
list1.remove (c)
list2.remove (c)
saraksts3 = saraksts1 + ["*"] + saraksts2
atgriezties [saraksts3, Taisnība]
saraksts3 = saraksts1 + ["*"] + saraksts2
atgriezties [saraksts3, Nepatiesi]

Definējiet funkciju, tell_status(). Izgūstiet tās personas vārdu, kuru lietotājs ievadīja, izmantojot gūt() metodi ievades logrīkā. Pārvērtiet visus burtus uz mazajiem burtiem un noņemiet atstarpes starp tām. Pārvērtiet nosaukumu rakstzīmju sarakstā. Atkārtojiet to ar otrās personas vārdu un iestatiet turpināt mainīgs uz Taisnība.

deftell_status():
p1 = Person1_field.get()
p1 = p1.zemāks()
p1.replace(" ", "")
p1_saraksts = saraksts (p1)
p2 = Person2_field.get()
p2 = p2.zemāks()
p2.replace(" ", "")
p2_saraksts = saraksts (p2)
turpināt = Taisnība

Kamēr turpinājuma vērtība ir patiesa, zvaniet uz remove_match_char() funkciju un nododiet divus tikko izveidotos sarakstus. Saglabājiet sasaistīto sarakstu un no funkcijas saņemto karoga statusu. Atrodiet ievietotās zvaigznītes indeksu un sadaliet virknes divos sarakstos pirms un pēc tās.

Saskaitiet rakstzīmju skaitu abos sarakstos un definējiet sarakstu, kurā tiek saglabāti dažādi statusi, kas var būt attiecībām saskaņā ar spēli FLAMES.

kamēr turpināt:
ret_list = remove_match_char (p1_list, p2_list)
con_list = ret_list[0]
turpināt = ret_list[1]
star_index = con_list.index("*")
p1_saraksts = con_list[: star_index]
p2_saraksts = con_list[star_index + 1:]

skaits = len (p1_saraksts) + len (p2_saraksts)
rezultāts = ["Draugi", "Mīlestība", "Pieķeršanās", "Laulība", "ienaidnieks", "Brāļi un māsas"]

Kamēr burti rezultātu sarakstā nav nulle, saglabājiet indeksa vērtību, no kuras jums jāveic sagriešana. Ja indekss ir lielāks par nulli vai vienāds ar nulli, sadaliet sarakstus divās daļās un saglabājiet sasaistīto virkni, secībā vispirms pievienojot labo daļu. Tas nodrošina, ka varat skaitīt pretēji pulksteņrādītāja virzienam.

Ievietojiet rezultātu statusa laukā pirmās rakstzīmes pozīcijā, lai parādītu attiecību statusu.

kamēr len (rezultāts) > 1:
split_index = (skaits % len (rezultāts) - 1)

ja split_index >= 0:
pa labi = rezultāts [split_index + 1:]
pa kreisi = rezultāts[: split_index]
rezultāts = pa labi + pa kreisi
cits:
rezultāts = rezultāts[: len (rezultāts) - 1]

Status_field.insert(0, rezultāts[0])

Definējiet funkciju, iztīrīt visu(). Izmantojiet funkciju delete() no pirmā rādītāja līdz pēdējam trīs ievades laukos, lai notīrītu ekrānā redzamo saturu. Izmantojiet metodi focus_set() pirmajā ievades laukā, lai aktivizētu un norādītu, ka lietotājs tajā ievada vērtības.

defiztīrīt visu():
Person1_field.delete(0, END)
Person2_field.delete(0, END)
Status_field.delete(0, END)
Person1_field.focus_set()

Inicializējiet Tkinter gadījumu un parādiet saknes logu, nododot to klasei. Iestatiet savas izvēles fona krāsu, izmēru un lietojumprogrammas nosaukumu.

sakne = Tk()
root.configure (background='#A020F0')
root.geometry("700x200")
root.title("FLAMES spēle")

Definējiet trīs etiķetes, lai apzīmētu divas personas un viņu attiecību statusu. Iestatiet vecāklogu, kurā vēlaties tos ievietot, tekstu, kas tam jāparāda, fonta krāsu, fona krāsu un fontu stilus. Pievienojiet nedaudz polsterējuma horizontālā virzienā.

etiķete1 = etiķete (sakne, teksts="Vārds 1:", fg='#ffffff',bg='#A020F0', font=("ariāls",20,"drosmīgs"), padx='20')
etiķete2 = etiķete (sakne, teksts="Vārds 2:", fg='#ffffff',bg='#A020F0', font=("ariāls",20,"drosmīgs"), padx='20')
label3 = etiķete (sakne, teksts="Attiecību statuss: ", fg='#ffffff', bg='#A020F0',font=("ariāls",20,"drosmīgs"), padx='20')

Izmantojiet režģa pārvaldnieku, lai sakārtotu trīs logrīkus pirmajā kolonnā. Ievietojiet pirmo etiķeti otrajā rindā, otro etiķeti trešajā rindā un trešo etiķeti ceturtajā rindā.

etiķete1.režģis (rinda=1, kolonna=0)
label2.grid (rinda=2, kolonna=0)
label3.grid (rinda=4, kolonna=0)

Definējiet trīs ievades logrīkus, lai iegūtu abu personu vērtības un parādītu to statusu. Iestatiet vecāklogu, kurā vēlaties ievietot logrīkus, un fontu stilus, kādiem tam vajadzētu būt.

Person1_field = Ieraksts (sakne, fonts=("ariāls", 15, "drosmīgs"))
Person2_field = Ieraksts (sakne, fonts=("ariāls", 15, "drosmīgs"))
Status_field = Ieraksts (sakne, fonts=("ariāls",15,"drosmīgs"))

Tāpat izmantojiet režģa pārvaldnieku, lai sakārtotu logrīkus otrajā kolonnā. Izmantojiet ipadx rekvizītu, lai iestatītu pikseļu skaitu, kas jāievieto logrīka robežās.

Person1_field.grid (rinda=1, kolonna=1, ipadx="50")
Person2_field.grid (rinda=2, kolonna=1, ipadx="50")
Statusa_lauks.režģis (rinda=4, kolonna=1, ipadx="50")

Definējiet divas pogas, Iesniegt un Skaidrs. Iestatiet vecāklogu, kurā vēlaties tos ievietot, tekstu, kas tam jāparāda, fona krāsu, fonta krāsu, funkcijas, kas tām jāizpilda, noklikšķinot, un fontu stilus.

Izmantojiet režģa pārvaldnieku, lai novietotu pogas attiecīgi otrās kolonnas ceturtajā un sestajā rindā.

button1 = poga (sakne, teksts ="Iesniegt", bg="#00ff00", fg="melns", command=tell_status, font=("ariāls",13,"drosmīgs") )
poga2 = poga (sakne, teksts="Notīrīt", bg="#00ff00", fg="melns", komanda=clear_all, font=("ariāls",13,"drosmīgs"))
button1.grid (rinda=3, kolonna=1)
button2.grid (rinda=5, kolonna=1)

The mainloop() funkcija liek Python palaist Tkinter notikumu cilpu un klausīties notikumus, līdz aizverat logu.

root.mainloop()

Salieciet visu kodu un sagatavojieties, lai spēlētu spēli FLAMES.

Spēles FLAMES izvades paraugs

Palaižot iepriekš minēto programmu, programma parāda spēļu lietojumprogrammu FLAMES ar trim etiķetēm, trim ievades laukiem un divām pogām, kas sakārtotas režģī. Ievadot vārdus "Tony Stark" un "Pepper Potts", programma parāda viņu attiecību statusu kā "Mīlestība".

Spēles, kuras varat izveidot, izmantojot Python

Pygame, Arcade, Panda3D, PyOpenGL un Pyglet ir daži noderīgi moduļi, ar kuriem varat izveidot Python spēles. Izmantojot Pygame, varat izveidot 2D spēles, piemēram, Super Mario Bros, Flappy Bird un Snake. Izmantojot Arcade, varat izveidot Pac-Man, Asteroids vai Breakout klonu.

Panda3D var palīdzēt jums izveidot 3D spēles, piemēram, Toontown Online, Pirates of the Caribbean Online un Disney's Virtual Magic Kingdom.