Pārbaudi savas kognitīvās spējas, veidojot šo atmiņas flīžu spēli.

Atmiņas flīze vai saskaņošanas spēle ir lielisks un jautrs veids, kā uzlabot izziņas spējas, uzlabot atmiņu un uzlabot fokusu. Spēlei ir flīžu komplekts, kas ir jāpārvērš pa vienam, jāiegaumē un jāizvēlas atbilstošās. Pareizi saskaņojot visas flīzes, jūs uzvarat spēli.

Tātad, kā jūs varat izveidot šo apbrīnojamo spēli, izmantojot Python?

Tkintera un izlases moduļi

Varat izveidot atmiņas flīžu spēli, izmantojot Tkinter un Random moduļus. Tkinter ļauj izveidot darbvirsmas lietojumprogrammas. Tas piedāvā dažādus logrīkus, piemēram, pogas, etiķetes un tekstlodziņus, kas to atvieglo izstrādāt lietojumprogrammas, piemēram, kalendārus, kalkulatori un uzdevumu saraksti. Lai instalētu Tkinter, atveriet termināli un palaidiet:

pip instalēt tkinter

Nejaušais modulis ir iebūvēts Python modulis, ko izmanto pseidogadījuma skaitļu ģenerēšanai. Izmantojot šo, jūs varat izveidot nejaušu paroļu ģeneratoru, metamo kauliņu simulācijas lietojumprogramma vai sarakstu maisītājs. Turklāt jūs varat arī

instagram viewer
izstrādāt interesantas spēles, piemēram, roku kriketu un skaitļu minēšanas spēles.

Kā izveidot atmiņas flīžu spēli, izmantojot Python

Šajā sadaļā varat atrast avota kodu atmiņas flīzes spēles izveidei, izmantojot Python GitHub repozitorijs.

Sāciet, importējot Tkinter un Random moduli. Inicializējiet saknes logu un iestatiet nosaukumu un izmērus pikseļos.

no tkinter imports *
imports nejauši
no tkinter imports ziņojumu kastīte

sakne = Tk()
root.title("Atmiņas flīžu spēle")
root.geometry("760x550")

Definējiet divus globālos mainīgos un inicializējiet uzvarētāja mainīgo uz nulli. Deklarējiet to vienumu sarakstu, kas parādīsies uz flīzēm. Pārkārtojiet sarakstu, izmantojot izlases moduli jaukt () metodi. Saknes logā definējiet rāmi un pievienojiet polsterējumu 10 vertikālā virzienā.

Inicializējiet skaitīšanas mainīgo uz 0 un attiecīgi deklarējiet atbilžu sarakstu un vārdnīcu.

globāli uzvarētājs, spēles
uzvarētājs = 0
spēles = ["ābols","ābols","banāns","banāns", "apelsīns","apelsīns", "mellenes","mellenes","zīdkoks","zīdkoks", "vīnogas","vīnogas"]
random.shuffle (atbilst)
my_frame = Rāmis (sakne)
my_frame.pack (pady=10)
skaits = 0
atbilžu_saraksts = []
answer_dict = {}

Definējiet funkciju, atiestatīt (). Iestatiet etiķetes tekstu uz tukšu virkni, izmantojot config () funkciju. Definējiet pogu sarakstu — vienu katrai daļai. Atkārtojiet sarakstu un iestatiet tekstu uz pogas flīzes uz tukšu virkni, fona krāsu uz noklusējuma (SystemButtonFace), un stāvoklis uz normālu.

defatiestatīt():
my_label.config (text="")
pogu_saraksts = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
priekš pogu iekšā button_list:
button.config (text=" ", bg="SystemButtonFace", valsts="normāls")

Definējiet funkciju, uzvarēt (). Iestatiet uzvarošo ziņojumu etiķetes teksta parametrā, izmantojot config () funkciju. Definējiet pogu sarakstu kā iepriekš un atkārtojiet to, lai iestatītu flīzes fona krāsu uz gaiši zaļu.

defuzvarēt():
my_label.config (text="Apsveicam! Tu uzvari!")
pogu_saraksts = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
priekš pogu iekšā button_list:
button.config (bg="#90EE90")

Definējiet funkciju, button_click() kas izmanto pogu un tās numuru kā ievades parametrus. Atsauces uz globālajiem mainīgajiem, sarakstu un vārdnīcu. Ja pogas teksts ir vienāds ar atstarpi un skaits ir mazāks par diviem, ievietojiet un parādiet pogas tekstu. Pievienojiet pogas numuru atbilžu sarakstam un nosaukumu atbilžu vārdnīcai. Palieliniet skaita mainīgo par vienu.

defbutton_click(b, numurs):
globāli count, answer_list, answer_dict, uzvarētājs
ja b["teksts"] == ' 'un skaitīt < 2:
b["teksts"] = atbilst[skaitlis]
answer_list.append (skaitlis)
atbilde_dikts[b] = atbilst[skaitlis]
skaits += 1

Ja atbilžu saraksta garums ir divi, tas nozīmē, ka lietotājs ir izvēlējies divas flīzes. Ja pirmās flīzes teksts sakrīt ar otru, konfigurējiet etiķeti, lai parādītu, ka abi elementi atbilst pareizi. Pagrieziet pogas stāvokli uz atspējotu. Iestatiet skaitu uz nulli un iztukšojiet sarakstu un vārdnīcu. Palieliniet uzvarētāja mainīgo par vienu un, ja tas kļūst par sešiem, izsauciet iepriekš deklarēto win funkciju.

ja len (atbilžu_saraksts) == 2:
ja atbilst[atbilžu_saraksts[0]] == atbilst[atbilžu_saraksts[1]]:
my_label.config (text="Tas ir mačs!")
priekš taustiņu iekšā answer_dict:
atslēga["Valsts"] = "invalīds"
skaits = 0
atbilžu_saraksts = []
answer_dict = {}
uzvarētājs += 1
ja uzvarētājs == 6:
uzvarēt ()

Pretējā gadījumā atiestatiet skaitīšanas mainīgo un sarakstu. Parādiet ziņojuma lodziņu ar nosaukumu un saturu, kas attēlo to kā nepareizu atbilstību. Atkārtojiet atbilžu sarakstu un iestatiet flīzes tekstu kā atstarpi. Atiestatiet etiķeti un iztukšojiet vārdnīcu. Tas nodrošina, ka pēc tam, kad lietotājs ir atlasījis nepareizas flīzes, uz pogas un etiķetes nav redzama teksta.

cits:
skaits = 0
atbilžu_saraksts = []
messagebox.showinfo("Nepareizi!", "Nepareizi")
priekš taustiņu iekšā answer_dict:
atslēga["teksts"] = " "
my_label.config (text=" ")
answer_dict = {}

Definējiet 12 pogas. Iestatiet vecāklogu, kurā vēlaties tos ievietot, tekstu, kas tiem jāparāda, fonta stilu, kas tiem jābūt, to augstumu un platumu, kā arī komandu, kas jāizpilda, noklikšķinot. Atcerieties izmantot lambda funkciju, lai nosūtītu datus uz button_click() funkciju. Iestatiet atvieglojums parametrs uz rieva lai ap pogu izveidotu 3D dziļuma efektu.

b0 = poga (mans_rāmis, teksts=' ', font=("Helvētika", 20), augstums=4, platums=8, komanda=lambda: button_click (b0, 0), atvieglojums="rieva")
b1 = poga (mans_rāmis, teksts=' ', font=("Helvētika", 20), augstums=4, platums=8, komanda=lambda: button_click (b1, 1), atvieglojums="rieva")
b2 = poga (mans_rāmis, teksts=' ', font=("Helvētika", 20), augstums=4, platums=8, komanda=lambda: button_click (b2, 2), atvieglojums="rieva")
b3 = poga (mans_rāmis, teksts=' ', font=("Helvētika", 20), augstums=4, platums=8, komanda=lambda: button_click (b3, 3), atvieglojums="rieva")
b4 = poga (mans_rāmis, teksts=' ', font=("Helvētika", 20), augstums=4, platums=8, komanda=lambda: button_click (b4, 4), atvieglojums="rieva")
b5 = poga (mans_rāmis, teksts=' ', font=("Helvētika", 20), augstums=4, platums=8, komanda=lambda: button_click (b5, 5), atvieglojums="rieva")
b6 = poga (mans_rāmis, teksts=' ', font=("Helvētika", 20), augstums=4, platums=8, komanda=lambda: button_click (b6, 6), atvieglojums="rieva")
b7 = poga (mans_rāmis, teksts=' ', font=("Helvētika", 20), augstums=4, platums=8, komanda=lambda: button_click (b7, 7), atvieglojums="rieva")
b8 = poga (mans_rāmis, teksts=' ', font=("Helvētika", 20), augstums=4, platums=8, komanda=lambda: button_click (b8, 8), atvieglojums="rieva")
b9 = poga (mans_rāmis, teksts=' ', font=("Helvētika", 20), augstums=4, platums=8, komanda=lambda: button_click (b9, 9), atvieglojums="rieva")
b10 = poga (mans_rāmis, teksts=' ', font=("Helvētika", 20), augstums=4, platums=8, komanda=lambda: button_click (b10, 10), atvieglojums="rieva")
b11 = poga (mans_rāmis, teksts=' ', font=("Helvētika", 20), augstums=4, platums=8, komanda=lambda: button_click (b11, 11), atvieglojums="rieva")

Sakārtojiet pogas tabulas formātā, kas sastāv no trim rindām un četrām kolonnām, izmantojot Tkinter režģa pārvaldnieku. Lai to izdarītu, zvaniet uz režģis () metodi un nododiet rindu kopā ar kolonnas numuru, kurā vēlaties to ievietot.

b0.režģis (rinda=0, kolonna=0)
b1.režģis (rinda=0, kolonna=1)
b2.grid (rinda=0, kolonna=2)
b3.režģis (rinda=0, kolonna=3)
b4.režģis (rinda=1, kolonna=0)
b5.režģis (rinda=1, kolonna=1)
b6.grid (rinda=1, kolonna=2)
b7.grid (rinda=1, kolonna=3)
b8.grid (rinda=2, kolonna=0)
b9.grid (rinda=2, kolonna=1)
b10.grid (rinda=2, kolonna=2)
b11.režģis (rinda=2, kolonna=3)

Definējiet etiķeti, kas parāda tukšu virkni, un pievienojiet polsterējumu 20 vertikālā virzienā. Saknes logā definējiet augstākā līmeņa izvēlni un pievienojiet to, pagriežot noplēst parametrs uz Nepatiesi. Pievienojiet apakšizvēlnes vienumu, Iespējas izmantojot add_cascade parametrs.

Pievienojiet divus izvēlnes vienumus kopā ar komandām, kas tām jāizpilda, noklikšķinot apakšizvēlnē ar nosaukumu Atiestatīt spēli un Iziet no spēles. Pievienojiet starp tiem atdalītāju, lai tos nodalītu.

my_label = Etiķete (sakne, teksts="")
my_label.pack (pady=20)

my_menu = izvēlne (sakne)
root.config (izvēlne=mana_izvēlne)
option_menu = Izvēlne (mana_izvēlne, tearoff=Nepatiesi)
my_menu.add_cascade (label="Opcijas", izvēlne=opciju_izvēlne)
option_menu.add_command (label="Atiestatīt spēli", komanda = atiestatīt)
option_menu.add_separator()
option_menu.add_command (label="Iziet no spēles", komanda=root.quit)

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

root.mainloop()

Salieciet visu kodu kopā. Tagad atmiņas flīzes spēle ir gatava spēlēšanai.

Atmiņas flīzes spēles izvade

Palaižot programmu, parādās 12 pogas ar tukšu tekstu kopā ar Iespējas izvēlne. Noklikšķinot Atiestatīt spēli, logs parādās tādā pašā veidā.

Atlasot divas atbilstošas ​​flīzes, pogas šķiet atspējotas, un etiķete parāda, ka izvēle ir pareiza.

Atlasot divus neatbilstošus elementus, tiek parādīts ziņojuma lodziņš, kas norāda, ka atlase bija nepareiza. Pogas un etiķete atgriežas sākotnējā tukšā stāvoklī.

Veiksmīgi saskaņojot visas izvēles, programma pārvērš visas flīzes zaļā krāsā un parāda uzvarētāju.

Spēles, kuras varat izveidot, izmantojot Python

Python piedāvā dažādus moduļus spēļu veidošanai. Lai izveidotu vienkāršas uz vārdiem vai izvēli balstītas spēles, piemēram, Hangman, Tic-Tac-Toe vai Rock Paper Scissors, varat izmantot moduļus Tkinter un Random. Lai izstrādātu spēles, kurām nepieciešams vairāk grafikas, varat izmantot Pygame.

Pygame ir Python moduļu komplekts, kas darbojas visās platformās. Tajā ir iekļauta datorgrafika un skaņu bibliotēkas, kas padara spēles interaktīvākas. Dažas no spēlēm, kuras varat izveidot, izmantojot Pygame, ietver spēli Snake, atmiņas puzzle spēli un Sudoku.