Udržujte si kontrolu svých kognitivních schopností stavbou této hry s paměťovými dlaždicemi.

Paměťová dlaždice nebo odpovídající hra je vynikající a zábavný způsob, jak posílit kognitivní schopnosti, zlepšit paměť a zlepšit soustředění. Hra obsahuje sadu dlaždic, které musíte jednu po druhé převrátit, zapamatovat si a vybrat ty, které se k sobě hodí. Pokud správně spojíte všechny dlaždice, vyhrajete hru.

Jak tedy můžete vyvinout tuto úžasnou hru pomocí Pythonu?

Moduly Tkinter a Random

Hru s paměťovými dlaždicemi můžete sestavit pomocí modulů Tkinter a Random. Tkinter vám umožňuje vytvářet desktopové aplikace. Nabízí řadu widgetů, jako jsou tlačítka, štítky a textová pole, které to usnadňují vývoj aplikací, jako jsou kalendáře, kalkulačky a seznamy úkolů. Chcete-li nainstalovat Tkinter, otevřete terminál a spusťte:

pip nainstalovat tkinter

Modul Random je vestavěný modul Pythonu používaný pro generování pseudonáhodných čísel. Pomocí tohoto můžete vytvořit generátor náhodných hesel, aplikace pro simulaci hodu kostkou nebo míchačka seznamů. Kromě toho můžete také

instagram viewer
vyvíjet zajímavé hry, jako je ruční kriket a hry s hádáním čísel.

Jak vytvořit hru s paměťovými dlaždicemi pomocí Pythonu

Zdrojový kód pro sestavení hry s paměťovými dlaždicemi pomocí Pythonu najdete v tomto úložiště GitHub.

Začněte importem Tkinter a modulu Random. Inicializujte kořenové okno a nastavte nadpis a rozměry v pixelech.

z tkinter import *
import náhodný
z tkinter import schránka zpráv

kořen = Tk()
root.title('Memory Tile Game')
root.geometry("760 x 550")

Definujte dvě globální proměnné a inicializujte proměnnou vítěze na nulu. Deklarujte seznam položek, které se objeví na dlaždicích. Změňte pořadí seznamu pomocí náhodného modulu zamíchat() metoda. Definujte rámeček v kořenovém okně a přidejte výplň 10 ve svislém směru.

Inicializujte proměnnou počtu na 0 a deklarujte seznam odpovědí a slovník.

globální vítěz, zápasy
vítěz = 0
odpovídá = ["jablko","jablko","banán","banán", "oranžový","oranžový", "borůvka","borůvka","moruše","moruše", "hrozny","hrozny"]
random.shuffle (shody)
my_frame = rámec (kořen)
my_frame.pack (pady=10)
počítat = 0
answer_list = []
answer_dict = {}

Definujte funkci, reset(). Nastavte text štítku na prázdný řetězec pomocí config() funkce. Definujte seznam tlačítek, jedno pro každou dlaždici. Iterujte seznam a nastavte text na dlaždici tlačítka na prázdný řetězec, barvu pozadí na výchozí (SystemButtonFace) a stav do normálu.

defresetovat():
my_label.config (text="")
button_list = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
pro knoflík v button_list:
button.config (text=" ", bg="SystemButtonFace", stát="normální")

Definujte funkci, vyhrát(). Nastavte vítěznou zprávu v textovém parametru štítku pomocí config() funkce. Definujte seznam tlačítek jako dříve a iterujte jej, abyste nastavili barvu pozadí dlaždice na světle zelenou.

defvyhrát():
my_label.config (text="Gratulujeme! Vyhráváte!")
button_list = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
pro knoflík v button_list:
button.config (bg="#90EE90")

Definujte funkci, button_click() to bere tlačítko a jeho číslo jako vstupní parametry. Odkazujte na globální proměnné, seznam a slovník. Pokud se text tlačítka rovná mezerě a počet je menší než dvě, vložte a zobrazte text tlačítka. Připojte číslo tlačítka k seznamu odpovědí a název ke slovníku odpovědí. Zvyšte proměnnou počtu o jednu.

defbutton_click(b, číslo):
globální count, answer_list, answer_dict, winner
-li b["text"] == ' 'a počítat < 2:
b["text"] = odpovídá [číslo]
answer_list.append (číslo)
answer_dict[b] = odpovídá[číslo]
počítat += 1

Pokud je délka seznamu odpovědí dvě, znamená to, že uživatel vybral dvě dlaždice. Pokud se text první dlaždice shoduje s textem druhé, nakonfigurujte štítek tak, aby zobrazoval, že se oba shodují správně. Otočte stav tlačítka na vypnuto. Nastavte počet na nulu a vyprázdněte seznam a slovník. Zvyšte proměnnou winner o jednu a pokud se změní na šest, zavolejte funkci win deklarovanou dříve.

-li len (seznam_odpovědí) == 2:
-li odpovídá[answer_list[0]] == odpovídá[seznam_odpovědí[1]]:
my_label.config (text="Je to zápas!")
pro klíč v answer_dict:
klíč["Stát"] = "zakázáno"
počítat = 0
answer_list = []
answer_dict = {}
vítěz += 1
-li vítěz == 6:
vyhrát()

V opačném případě resetujte proměnnou počtu a seznam. Zobrazte okno se zprávou s názvem a obsahem, které jej zobrazují jako nesprávnou shodu. Iterujte přes seznam odpovědí a nastavte text dlaždice na mezeru. Resetujte štítek a vyprázdněte slovník. Tím je zajištěno, že na tlačítku a štítku nebude žádný viditelný text poté, co uživatel vybral nesprávné dlaždice.

jiný:
počítat = 0
answer_list = []
messagebox.showinfo("Nesprávný!", "Nesprávný")
pro klíč v answer_dict:
klíč["text"] = " "
my_label.config (text=" ")
answer_dict = {}

Definujte 12 tlačítek. Nastavte nadřazené okno, do kterého je chcete umístit, text, který mají zobrazovat, styl písma, který mají mít, jejich výšku a šířku a příkaz, který se má po kliknutí provést. Nezapomeňte použít funkci lambda k předání dat do button_click() funkce. Nastav úleva parametr k drážka pro vytvoření 3D efektu hloubky kolem tlačítka.

b0 = Tlačítko (můj_rámeček, text=' ', font=("helvetica", 20), výška=4, šířka=8, příkaz=lambda: button_click (b0, 0), úleva="drážka")
b1 = Tlačítko (můj_rámeček, text=' ', font=("helvetica", 20), výška=4, šířka=8, příkaz=lambda: button_click (b1, 1), úleva="drážka")
b2 = Tlačítko (můj_rámeček, text=' ', font=("helvetica", 20), výška=4, šířka=8, příkaz=lambda: button_click (b2, 2), úleva="drážka")
b3 = Tlačítko (můj_rámeček, text=' ', font=("helvetica", 20), výška=4, šířka=8, příkaz=lambda: button_click (b3, 3), úleva="drážka")
b4 = Tlačítko (můj_rámeček, text=' ', font=("helvetica", 20), výška=4, šířka=8, příkaz=lambda: button_click (b4, 4), úleva="drážka")
b5 = Tlačítko (my_frame, text=' ', font=("helvetica", 20), výška=4, šířka=8, příkaz=lambda: button_click (b5, 5), úleva="drážka")
b6 = Tlačítko (my_frame, text=' ', font=("helvetica", 20), výška=4, šířka=8, příkaz=lambda: button_click (b6, 6), úleva="drážka")
b7 = Tlačítko (můj_rámeček, text=' ', font=("helvetica", 20), výška=4, šířka=8, příkaz=lambda: button_click (b7, 7), úleva="drážka")
b8 = Tlačítko (my_frame, text=' ', font=("helvetica", 20), výška=4, šířka=8, příkaz=lambda: button_click (b8, 8), úleva="drážka")
b9 = Tlačítko (můj_rámeček, text=' ', font=("helvetica", 20), výška=4, šířka=8, příkaz=lambda: button_click (b9, 9), úleva="drážka")
b10 = Tlačítko (můj_rámeček, text=' ', font=("helvetica", 20), výška=4, šířka=8, příkaz=lambda: button_click (b10, 10), úleva="drážka")
b11 = Tlačítko (můj_rámeček, text=' ', font=("helvetica", 20), výška=4, šířka=8, příkaz=lambda: button_click (b11, 11), úleva="drážka")

Uspořádejte tlačítka v tabulkovém formátu sestávajícím ze tří řádků a čtyř sloupců pomocí správce mřížky Tkinter. Chcete-li tak učinit, zavolejte na mřížka() metodu a předejte řádek spolu s číslem sloupce, do kterého jej chcete umístit.

b0.grid (řádek=0, sloupec=0)
b1.grid (řádek=0, sloupec=1)
b2.grid (řádek=0, sloupec=2)
b3.grid (řádek=0, sloupec=3)
b4.grid (řádek=1, sloupec=0)
b5.grid (řádek=1, sloupec=1)
b6.grid (řádek=1, sloupec=2)
b7.grid (řádek=1, sloupec=3)
b8.grid (řádek=2, sloupec=0)
b9.grid (řádek=2, sloupec=1)
b10.grid (řádek=2, sloupec=2)
b11.grid (řádek=2, sloupec=3)

Definujte štítek, který zobrazuje prázdný řetězec, a přidejte výplň 20 ve svislém směru. Definujte nabídku nejvyšší úrovně v kořenovém okně a připojte ji otočením odtrhnout parametr k Nepravdivé. Přidejte položku podnabídky, Možnosti za použití add_cascade parametr.

Přidejte dvě položky nabídky spolu s příkazy, které by měly být provedeny po kliknutí v pojmenované podnabídce Resetovat hru a Ukončit hru. Přidejte mezi ně oddělovač pro vymezení.

my_label = Štítek (kořen, text="")
my_label.pack (pady=20)

my_menu = Menu (kořen)
root.config (menu=moje_menu)
option_menu = Menu (my_menu, tearoff=Nepravdivé)
moje_menu.add_cascade (label="Možnosti", menu=menu_možnosti)
option_menu.add_command (label="Resetovat hru", příkaz=reset)
option_menu.add_separator()
option_menu.add_command (label="Ukončit hru", command=root.quit)

The mainloop() Funkce říká Pythonu, aby spustil smyčku událostí Tkinter a naslouchal událostem, dokud nezavřete okno.

root.mainloop()

Dejte dohromady celý kód. Nyní je hra s paměťovými dlaždicemi připravena ke hře.

Výstup hry Memory Tile Game

Při spuštění programu se objeví 12 tlačítek s prázdným textem spolu s Možnosti Jídelní lístek. Při kliknutí Resetovat hru, okno se zobrazí stejným způsobem.

Při výběru dvou shodných dlaždic se tlačítka zdají být neaktivní a štítek zobrazuje, že volba je správná.

Při výběru dvou dlaždic, které se neshodují, se zobrazí okno se zprávou, že výběr byl nesprávný. Tlačítka a štítek se vrátí do původního prázdného stavu.

Po úspěšném splnění všech možností program zezelená všechny dlaždice a zobrazí výherní zprávu.

Hry, které můžete vytvořit pomocí Pythonu

Python nabízí řadu modulů pro vytváření her. Chcete-li vytvořit jednoduché hry založené na slovech nebo volbě, jako je Kat, Tic-Tac-Toe nebo Rock Paper Scissors, můžete využít moduly Tkinter a Random. K vývoji her, které potřebují více grafiky, můžete použít Pygame.

Pygame je sada modulů Pythonu, která funguje na všech platformách. Zahrnuje počítačové grafické a zvukové knihovny, díky nimž jsou hry interaktivnější. Některé z her, které můžete vytvořit pomocí Pygame, zahrnují hru Snake, paměťovou logickou hru a Sudoku.