Majte kontrolu nad svojimi kognitívnymi schopnosťami stavaním tejto hry s pamäťovými dlaždicami.

Pamäťová dlaždica alebo hra na zhodu je vynikajúci a zábavný spôsob, ako posilniť kognitívne schopnosti, zlepšiť pamäť a zlepšiť sústredenie. Hra obsahuje sadu dlaždíc, ktoré musíte jednu po druhej prevrátiť, zapamätať si a vybrať tie, ktoré sa zhodujú. Ak správne spojíte všetky dlaždice, vyhráte hru.

Ako teda môžete vyvinúť túto úžasnú hru pomocou Pythonu?

Moduly Tkinter a Random

Hru s pamäťovými dlaždicami môžete zostaviť pomocou modulov Tkinter a Random. Tkinter vám umožňuje vytvárať desktopové aplikácie. Ponúka množstvo miniaplikácií, ako sú tlačidlá, štítky a textové polia, ktoré to uľahčujú vývoj aplikácií, ako sú kalendáre, kalkulačky a zoznamy úloh. Ak chcete nainštalovať Tkinter, otvorte terminál a spustite:

pip nainštalovať tkinter

Modul Random je vstavaný modul Pythonu, ktorý sa používa na generovanie pseudonáhodných čísel. Pomocou tohto môžete vytvoriť generátor náhodných hesiel, aplikácia na simuláciu hodu kockou alebo miešanie zoznamov. Okrem toho môžete tiež

instagram viewer
vyvíjajte zaujímavé hry, ako je ručný kriket a hry na hádanie čísel.

Ako zostaviť hru s pamäťovými dlaždicami pomocou Pythonu

V tomto nájdete zdrojový kód na zostavenie hry s pamäťovými dlaždicami pomocou Pythonu úložisko GitHub.

Začnite importovaním Tkinter a modulu Random. Inicializujte koreňové okno a nastavte nadpis a rozmery v pixeloch.

od tkinter importovať *
importovať náhodný
od tkinter importovať schránka správ

koreň = Tk()
root.title('Memory Tile Game')
root.geometry("760 x 550")

Definujte dve globálne premenné a inicializujte víťaznú premennú na nulu. Vyhláste zoznam položiek, ktoré sa objavia na dlaždiciach. Zmeňte poradie zoznamu pomocou náhodného modulu zamiešať () metóda. Definujte rám v koreňovom okne a pridajte výplň 10 vo vertikálnom smere.

Inicializujte premennú počtu na 0 a deklarujte zoznam odpovedí a slovník.

globálne víťaz, zápasy
víťaz = 0
zhody = ["jablko","jablko","banán","banán", "oranžový","oranžový", "čučoriedka","čučoriedka","moruše","moruše", "hrozno","hrozno"]
random.shuffle (zhody)
my_frame = Rám (root)
my_frame.pack (pady=10)
počítať = 0
answer_list = []
answer_dict = {}

Definujte funkciu, reset(). Nastavte text štítku na prázdny reťazec pomocou config() funkciu. Definujte zoznam tlačidiel, jeden pre každú z dlaždíc. Iterujte cez zoznam a nastavte text na dlaždici tlačidla na prázdny reťazec, farbu pozadia na predvolenú (SystemButtonFace) a stav do normálu.

defresetovať():
my_label.config (text="")
button_list = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
pre tlačidlo v button_list:
button.config (text=" ", bg="SystemButtonFace", štát="normálne")

Definujte funkciu, vyhrať(). Nastavte víťaznú správu v textovom parametri štítku pomocou config() funkciu. Definujte zoznam tlačidiel ako predtým a iterujte ho, aby ste nastavili farbu pozadia dlaždice na svetlozelenú.

defvyhrať():
my_label.config (text=„Gratulujem! Vyhral si!")
button_list = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
pre tlačidlo v button_list:
button.config (bg="#90EE90")

Definujte funkciu, button_click() ktorá berie tlačidlo a jeho číslo ako vstupné parametre. Odkaz na globálne premenné, zoznam a slovník. Ak sa text tlačidla rovná medzere a počet je menší ako dva, vložte a zobrazte text tlačidla. Pridajte číslo tlačidla do zoznamu odpovedí a názov do slovníka odpovedí. Zvýšte počet premenných o jednu.

defbutton_click(b, číslo):
globálne count, answer_list, answer_dict, winner
ak b["text"] == ' 'a počítať < 2:
b["text"] = zodpovedá [číslo]
answer_list.append (číslo)
answer_dict[b] = zodpovedá[číslo]
počítať += 1

Ak je dĺžka zoznamu odpovedí dve, znamená to, že používateľ vybral dve dlaždice. Ak sa text prvej dlaždice zhoduje s druhou, nakonfigurujte štítok tak, aby zobrazoval, že sa oba zhodujú správne. Otočte stav tlačidla na vypnutý. Nastavte počet na nulu a vyprázdnite zoznam a slovník. Zvýšte premennú víťaza o jednu a ak sa zmení na šesť, zavolajte funkciu win deklarovanú skôr.

ak len (zoznam_odpovedí) == 2:
ak zhody[answer_list[0]] == sa zhoduje s [zoznam_odpovedí[1]]:
my_label.config (text="Je to zápas!")
pre kľúč v answer_dict:
kľúč["štát"] = "zakázané"
počítať = 0
answer_list = []
answer_dict = {}
víťaz += 1
ak víťaz == 6:
vyhrať()

V opačnom prípade vynulujte premennú počtu a zoznam. Zobrazte okno so správou s názvom a obsahom, ktoré ho zobrazujú ako nesprávnu zhodu. Opakujte zoznam odpovedí a nastavte text dlaždice na medzeru. Obnovte označenie a vyprázdnite slovník. Tým sa zabezpečí, že na tlačidle a štítku nebude viditeľný text po tom, čo používateľ vyberie nesprávne dlaždice.

inak:
počítať = 0
answer_list = []
messagebox.showinfo("Nesprávne!", "nesprávne")
pre kľúč v answer_dict:
kľúč["text"] = " "
my_label.config (text=" ")
answer_dict = {}

Definujte 12 tlačidiel. Nastavte rodičovské okno, do ktorého ich chcete umiestniť, text, ktorý by sa mal zobraziť, štýl písma, ktorý by mal mať, ich výšku a šírku a príkaz, ktorý sa má vykonať po kliknutí. Nezabudnite použiť funkciu lambda na odovzdanie údajov do button_click() funkciu. Nastaviť úľavu parameter do drážka na vytvorenie 3-D efektu hĺbky okolo tlačidla.

b0 = Tlačidlo (my_frame, text=' ', font=("Helvetica", 20), výška=4, šírka=8, príkaz=lambda: button_click (b0, 0), úľava="drážka")
b1 = Tlačidlo (môj_rám, text=' ', font=("Helvetica", 20), výška=4, šírka=8, príkaz=lambda: button_click (b1, 1), úľava="drážka")
b2 = Tlačidlo (my_frame, text=' ', font=("Helvetica", 20), výška=4, šírka=8, príkaz=lambda: button_click (b2, 2), úľava="drážka")
b3 = Tlačidlo (my_frame, text=' ', font=("Helvetica", 20), výška=4, šírka=8, príkaz=lambda: button_click (b3, 3), úľava="drážka")
b4 = Tlačidlo (my_frame, text=' ', font=("Helvetica", 20), výška=4, šírka=8, príkaz=lambda: button_click (b4, 4), úľava="drážka")
b5 = Tlačidlo (môj_rám, text=' ', font=("Helvetica", 20), výška=4, šírka=8, príkaz=lambda: button_click (b5, 5), úľava="drážka")
b6 = Tlačidlo (my_frame, text=' ', font=("Helvetica", 20), výška=4, šírka=8, príkaz=lambda: button_click (b6, 6), úľava="drážka")
b7 = Tlačidlo (môj_rámec, text=' ', font=("Helvetica", 20), výška=4, šírka=8, príkaz=lambda: button_click (b7, 7), úľava="drážka")
b8 = Tlačidlo (môj_rámec, text=' ', font=("Helvetica", 20), výška=4, šírka=8, príkaz=lambda: button_click (b8, 8), úľava="drážka")
b9 = Tlačidlo (môj_rámec, text=' ', font=("Helvetica", 20), výška=4, šírka=8, príkaz=lambda: button_click (b9, 9), úľava="drážka")
b10 = Tlačidlo (môj_rámec, text=' ', font=("Helvetica", 20), výška=4, šírka=8, príkaz=lambda: button_click (b10, 10), úľava="drážka")
b11 = Tlačidlo (môj_rám, text=' ', font=("Helvetica", 20), výška=4, šírka=8, príkaz=lambda: button_click (b11, 11), úľava="drážka")

Usporiadajte tlačidlá v tabuľkovom formáte pozostávajúcom z troch riadkov a štyroch stĺpcov pomocou správcu mriežky Tkinter. Ak tak chcete urobiť, zavolajte na mriežka() metódu a odovzdajte riadok spolu s číslom stĺpca, do ktorého ho chcete umiestniť.

b0.mriežka (riadok=0, stĺpec=0)
b1.mriežka (riadok=0, stĺpec=1)
b2.mriežka (riadok=0, stĺpec=2)
b3.mriežka (riadok=0, stĺpec=3)
b4.mriežka (riadok=1, stĺpec=0)
b5.mriežka (riadok=1, stĺpec=1)
b6.mriežka (riadok=1, stĺpec=2)
b7.mriežka (riadok=1, stĺpec=3)
b8.mriežka (riadok=2, stĺpec=0)
b9.grid (riadok=2, stĺpec=1)
b10.mriežka (riadok=2, stĺpec=2)
b11.mriežka (riadok=2, stĺpec=3)

Definujte štítok, ktorý zobrazuje prázdny reťazec, a pridajte výplň 20 vo vertikálnom smere. Definujte ponuku najvyššej úrovne v koreňovom okne a pripojte ju otočením odtrhnúť parameter do Nepravdivé. Pridajte položku podponuky, možnosti pomocou add_cascade parameter.

Pridajte dve položky ponuky spolu s príkazmi, ktoré by sa mali vykonať po kliknutí v pomenovanej podponuke Resetovať hru a Ukončiť hru. Pridajte medzi ne oddeľovač na vymedzenie.

my_label = Označenie (koreň, text="")
my_label.pack (pady=20)

my_menu = Menu (koreň)
root.config (menu=moja_menu)
option_menu = Menu (my_menu, tearoff=Nepravdivé)
my_menu.add_cascade (label="Možnosti", menu=menu_možnosti)
option_menu.add_command (label="Resetovať hru", príkaz=reset)
option_menu.add_separator()
option_menu.add_command (label="Ukončiť hru", príkaz=root.quit)

The mainloop() funkcia hovorí Pythonu, aby spustil slučku udalostí Tkinter a počúval udalosti, kým nezatvoríte okno.

root.mainloop()

Dajte dohromady celý kód. Teraz je hra s pamäťovými dlaždicami pripravená na hranie.

Výstup z hry s pamäťovými dlaždicami

Pri spustení programu sa zobrazí 12 tlačidiel s prázdnym textom spolu s možnosti Ponuka. Pri kliknutí Resetovať hru, okno sa zobrazí rovnakým spôsobom.

Pri výbere dvoch zhodných dlaždíc sa tlačidlá zobrazia ako deaktivované a na štítku sa zobrazí správna voľba.

Pri výbere dvoch dlaždíc, ktoré sa nezhodujú, sa zobrazí okno so správou, že výber bol nesprávny. Tlačidlá a štítok sa vrátia do pôvodného prázdneho stavu.

Po úspešnom vyhovení všetkých možností program zafarbí všetky dlaždice na zeleno a zobrazí výhernú správu.

Hry, ktoré môžete zostaviť pomocou Pythonu

Python ponúka množstvo modulov na vytváranie hier. Na vytvorenie jednoduchých slovných hier alebo hier založených na výbere, ako je Kat, Tic-Tac-Toe alebo Rock Paper Scissors, môžete využiť moduly Tkinter a Random. Na vývoj hier, ktoré potrebujú viac grafiky, môžete použiť Pygame.

Pygame je sada modulov Pythonu, ktorá funguje na všetkých platformách. Zahŕňa počítačové grafické a zvukové knižnice, vďaka ktorým sú hry interaktívnejšie. Niektoré z hier, ktoré môžete vytvoriť pomocou Pygame, zahŕňajú hru Snake, pamäťovú logickú hru a Sudoku.