Stebėkite savo pažintinius gebėjimus kurdami šį atminties plytelių žaidimą.
Atminties plytelė arba atitikimo žaidimas yra puikus ir įdomus būdas pagerinti pažinimo gebėjimus, pagerinti atmintį ir pagerinti dėmesį. Žaidime yra plytelių rinkinys, kurį turite apversti po vieną, įsiminti ir pasirinkti tinkančias. Teisingai suderinę visas plyteles, jūs laimite žaidimą.
Taigi, kaip galite sukurti šį nuostabų žaidimą naudodami Python?
Tkinter ir atsitiktiniai moduliai
Galite sukurti atminties plytelių žaidimą naudodami Tkinter ir Random modulius. „Tkinter“ leidžia kurti darbalaukio programas. Jame siūlomi įvairūs valdikliai, pvz., mygtukai, etiketės ir teksto laukeliai, kurie palengvina naudojimą kurti programas, pvz., kalendorius, skaičiuotuvai ir darbų sąrašai. Norėdami įdiegti „Tkinter“, atidarykite terminalą ir paleiskite:
pip įdiegti tkinter
Atsitiktinis modulis yra įmontuotas Python modulis, naudojamas pseudoatsitiktiniams skaičiams generuoti. Naudojant tai, galite sukurti atsitiktinių slaptažodžių generatorių
, kauliukų metimo modeliavimo programa arba sąrašų maišytuvas. Be to, jūs taip pat galite kurkite įdomius žaidimus, tokius kaip rankinis kriketas ir skaičių spėliojimo žaidimai.Kaip sukurti atminties plytelių žaidimą naudojant Python
Čia galite rasti šaltinio kodą, skirtą atminties plytelių žaidimui sukurti naudojant Python GitHub saugykla.
Pradėkite importuodami „Tkinter“ ir „Random“ modulį. Inicijuokite šakninį langą ir nustatykite pavadinimą bei matmenis pikseliais.
iš tkinteris importuoti *
importuoti atsitiktinis
iš tkinteris importuoti žinučių dėžutė
šaknis = Tk()
root.title(„Atminties plytelių žaidimas“)
root.geometry(„760 x 550“)
Apibrėžkite du pasaulinius kintamuosius ir inicijuokite nugalėtojo kintamąjį iki nulio. Paskelbkite elementų, kurie bus rodomi plytelėse, sąrašą. Pertvarkykite sąrašą naudodami atsitiktinį modulį shuffle () metodas. Apibrėžkite rėmelį šakniniame lange ir pridėkite 10 paminkštinimą vertikalia kryptimi.
Skaičiavimo kintamąjį inicijuokite iki 0 ir atitinkamai paskelbkite atsakymų sąrašą bei žodyną.
globalus nugalėtojas, rungtynės
nugalėtojas = 0
atitikmenys = ["obuolys","obuolys","bananas","bananas", "oranžinė","oranžinė", "mėlynė","mėlynė","šilkmedis","šilkmedis", "vynuogės","vynuogės"]
random.shuffle (atitinka)
my_frame = Rėmas (šaknis)
my_frame.pack (pady=10)
skaičiuoti = 0
atsakymų_sąrašas = []
atsakymas_diktas = {}
Apibrėžkite funkciją, iš naujo (). Nustatykite etiketės tekstą į tuščią eilutę naudodami config () funkcija. Nustatykite mygtukų sąrašą, po vieną kiekvienai plytelei. Pakartokite sąrašą ir mygtuko plytelės tekstą nustatykite į tuščią eilutę, fono spalvą į numatytąją (SystemButtonFace), o būsena normali.
defatstatyti():
my_label.config (text="")
button_list = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
dėl mygtuką in button_list:
button.config (text=" ", bg="SystemButtonFace", būsena="normalus")
Apibrėžkite funkciją, laimėti (). Etiketės teksto parametre nustatykite laimėjusį pranešimą naudodami config () funkcija. Apibrėžkite mygtukų sąrašą kaip anksčiau ir kartokite jį, kad plytelės fono spalva būtų šviesiai žalia.
deflaimėti():
my_label.config (text=„Sveikiname! Tu laimėjai!")
button_list = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
dėl mygtuką in button_list:
button.config (bg="#90EE90")
Apibrėžkite funkciją, button_click() kuris paima mygtuką ir jo numerį kaip įvesties parametrus. Nurodykite pasaulinius kintamuosius, sąrašą ir žodyną. Jei mygtuko tekstas yra lygus tarpui, o skaičius yra mažesnis nei du, įterpkite ir parodykite mygtuko tekstą. Pridėkite mygtuko numerį prie atsakymų sąrašo ir pavadinimą prie atsakymų žodyno. Padidinkite skaičiaus kintamąjį vienu.
defbutton_click(b, skaičius):
globalus count, answer_list, answer_dict, nugalėtojas
jeigu b["tekstas"] == ' 'ir skaičiuoti < 2:
b["tekstas"] = atitinka[skaičius]
answer_list.append (skaičius)
atsakymas_diktas[b] = atitinka[skaičius]
skaičiuoti += 1
Jei atsakymų sąrašo ilgis yra dvi, tai reiškia, kad vartotojas pasirinko dvi plyteles. Jei pirmosios plytelės tekstas sutampa su kitos, sukonfigūruokite etiketę taip, kad būtų rodoma, kad jie abu sutampa. Pasukite mygtuko būseną į išjungtą. Nustatykite skaičių į nulį ir ištuštinkite sąrašą bei žodyną. Padidinkite nugalėtojo kintamąjį vienu ir, jei jis pavirs iki šešių, iškvieskite anksčiau deklaruotą laimėjimo funkciją.
jeigu len (atsakymų_sąrašas) == 2:
jeigu atitinka[atsakymų_sąrašas[0]] == atitinka[atsakymų_sąrašas[1]]:
my_label.config (text="Tai rungtynės!")
dėl Raktas in answer_dict:
Raktas["valstybė"] = "neįgalus"
skaičiuoti = 0
atsakymų_sąrašas = []
atsakymas_diktas = {}
laimėtojas += 1
jeigu nugalėtojas == 6:
laimėti ()
Kitu atveju iš naujo nustatykite skaičiaus kintamąjį ir sąrašą. Rodyti pranešimo laukelį su pavadinimu ir turiniu, vaizduojančiu neteisingą atitiktį. Pakartokite atsakymų sąrašą ir nustatykite plytelės tekstą į tarpą. Iš naujo nustatykite etiketę ir ištuštinkite žodyną. Taip užtikrinama, kad vartotojui pasirinkus neteisingas plyteles ant mygtuko ir etiketės nebus matomo teksto.
Kitas:
skaičiuoti = 0
atsakymų_sąrašas = []
messagebox.showinfo("Neteisingai!", "Neteisinga")
dėl Raktas in answer_dict:
Raktas["tekstas"] = " "
my_label.config (text=" ")
atsakymas_diktas = {}
Apibrėžkite 12 mygtukų. Nustatykite pagrindinį langą, kuriame norite juos įdėti, tekstą, kurį jie turi rodyti, šrifto stilių, aukštį ir plotį bei komandą, kuri bus vykdoma spustelėjus. Nepamirškite naudoti lambda funkcijos duomenims perduoti button_click() funkcija. Nustatyti palengvėjimas parametras į griovelis Norėdami sukurti 3D gylio efektą aplink mygtuką.
b0 = Mygtukas (mano_rėmas, tekstas=' ', šriftas=("Helvetica", 20), aukštis=4, plotis=8, komanda=lambda: button_click (b0, 0), palengvėjimas ="griovelis")
b1 = Mygtukas (mano_rėmas, tekstas=' ', šriftas=("Helvetica", 20), aukštis=4, plotis=8, komanda=lambda: button_click (b1, 1), palengvėjimas ="griovelis")
b2 = Mygtukas (mano_rėmas, tekstas=' ', šriftas=("Helvetica", 20), aukštis=4, plotis=8, komanda=lambda: button_click (b2, 2), palengvėjimas ="griovelis")
b3 = Mygtukas (mano_rėmas, tekstas=' ', šriftas=("Helvetica", 20), aukštis=4, plotis=8, komanda=lambda: button_click (b3, 3), palengvėjimas ="griovelis")
b4 = Mygtukas (mano_rėmas, tekstas=' ', šriftas=("Helvetica", 20), aukštis=4, plotis=8, komanda=lambda: button_click (b4, 4), palengvėjimas ="griovelis")
b5 = Mygtukas (mano_rėmas, tekstas=' ', šriftas=("Helvetica", 20), aukštis=4, plotis=8, komanda=lambda: button_click (b5, 5), palengvėjimas ="griovelis")
b6 = Mygtukas (mano_rėmas, tekstas=' ', šriftas=("Helvetica", 20), aukštis=4, plotis=8, komanda=lambda: button_click (b6, 6), palengvėjimas ="griovelis")
b7 = Mygtukas (mano_rėmas, tekstas=' ', šriftas=("Helvetica", 20), aukštis=4, plotis=8, komanda=lambda: button_click (b7, 7), palengvėjimas ="griovelis")
b8 = Mygtukas (mano_rėmas, tekstas=' ', šriftas=("Helvetica", 20), aukštis=4, plotis=8, komanda=lambda: button_click (b8, 8), palengvėjimas ="griovelis")
b9 = Mygtukas (mano_rėmas, tekstas=' ', šriftas=("Helvetica", 20), aukštis=4, plotis=8, komanda=lambda: button_click (b9, 9), palengvėjimas ="griovelis")
b10 = Mygtukas (mano_rėmas, tekstas=' ', šriftas=("Helvetica", 20), aukštis=4, plotis=8, komanda=lambda: button_click (b10, 10), palengvėjimas ="griovelis")
b11 = Mygtukas (mano_rėmas, tekstas=' ', šriftas=("Helvetica", 20), aukštis=4, plotis=8, komanda=lambda: button_click (b11, 11), palengvėjimas ="griovelis")
Sutvarkykite mygtukus lentelės formatu, susidedančiu iš trijų eilučių ir keturių stulpelių, naudodami „Tkinter“ tinklelio tvarkyklę. Norėdami tai padaryti, skambinkite tinklelis () metodą ir perduokite eilutę kartu su stulpelio numeriu, į kurį norite ją įdėti.
b0.grid (eilutė=0, stulpelis=0)
b1.grid (eilutė=0, stulpelis=1)
b2.grid (eilutė=0, stulpelis=2)
b3.grid (eilutė=0, stulpelis=3)
b4.grid (eilutė=1, stulpelis=0)
b5.grid (eilutė=1, stulpelis=1)
b6.grid (eilutė=1, stulpelis=2)
b7.grid (eilutė=1, stulpelis=3)
b8.grid (eilutė=2, stulpelis=0)
b9.grid (eilutė=2, stulpelis=1)
b10.grid (eilutė=2, stulpelis=2)
b11.grid (eilutė=2, stulpelis=3)
Apibrėžkite etiketę, kurioje rodoma tuščia eilutė, ir pridėkite 20 užpildą vertikalia kryptimi. Apibrėžkite aukščiausio lygio meniu šakniniame lange ir prijunkite jį sukdami nuplėšti parametras į Netiesa. Pridėti submeniu elementą, Galimybės naudojant add_cascade parametras.
Pridėkite du meniu elementus kartu su komandomis, kurias jie turėtų vykdyti spustelėjus submeniu pavadinimu Iš naujo nustatyti žaidimą ir Išeiti iš žaidimo. Tarp jų pridėkite skyriklį, kad būtų galima atskirti.
my_label = Etiketė (šaknis, tekstas="")
my_label.pack (pady=20)
my_menu = meniu (šakninis)
root.config (menu=mano_meniu)
option_menu = meniu (mano_meniu, tearoff=Netiesa)
my_menu.add_cascade (etiketė="Galimybės", meniu=parinkčių_meniu)
option_menu.add_command (label=„Atstatyti žaidimą“, komanda=nustatyti iš naujo)
option_menu.add_separator()
option_menu.add_command (label="Išeiti iš žaidimo", komanda=root.quit)
The mainloop () funkcija liepia Python paleisti Tkinter įvykių kilpą ir klausytis įvykių, kol uždarysite langą.
root.mainloop()
Sudėkite visą kodą. Dabar atminties plytelių žaidimas yra paruoštas žaisti.
Žaidimo „Atminties plytelės“ išvestis
Vykdant programą pasirodo 12 mygtukų su tuščiu tekstu kartu su Galimybės Meniu. Paspaudus Iš naujo nustatyti žaidimą, langas atrodo taip pat.
Pasirinkus dvi atitinkančias plyteles, mygtukai atrodo išjungti, o etiketėje rodoma, kad pasirinkimas teisingas.
Pasirinkus dvi neatitinkančias plyteles, pasirodo pranešimo langas, nurodantis, kad pasirinkimas buvo neteisingas. Mygtukai ir etiketė grįžta į pradinę tuščią būseną.
Sėkmingai suderinus visus pasirinkimus, programa pakeičia visas plyteles žaliai ir parodo laimėjimo pranešimą.
Žaidimai, kuriuos galite sukurti naudodami Python
Python siūlo įvairius modulius žaidimams kurti. Norėdami sukurti paprastus žodžiu ar pasirinkimu pagrįstus žaidimus, tokius kaip Hangman, Tic-Tac-Toe arba Rock Paper Scissors, galite naudoti Tkinter ir Random modulius. Norėdami sukurti žaidimus, kuriems reikia daugiau grafikos, galite naudoti Pygame.
Pygame yra Python modulių rinkinys, veikiantis visose platformose. Tai apima kompiuterinę grafiką ir garso bibliotekas, kurios daro žaidimus interaktyvesnius. Kai kurie žaidimai, kuriuos galite sukurti naudodami „Pygame“, yra žaidimas „Snake“, atminties dėlionė ir „Sudoku“.