Sprawdź swoje zdolności poznawcze, budując tę grę w kafelki pamięci.
Kafelek pamięci lub gra w dopasowywanie to doskonały i zabawny sposób na zwiększenie zdolności poznawczych, poprawę pamięci i poprawę koncentracji. Gra zawiera zestaw kafelków, które musisz kolejno odwracać, zapamiętywać i wybierać te, które pasują. Po prawidłowym dopasowaniu wszystkich płytek wygrywasz grę.
Jak więc stworzyć tę niesamowitą grę za pomocą Pythona?
Moduły Tkinter i Random
Możesz zbudować grę z kafelkami pamięci, używając modułów Tkinter i Random. Tkinter umożliwia tworzenie aplikacji desktopowych. Oferuje różnorodne widżety, takie jak przyciski, etykiety i pola tekstowe, które ułatwiają opracowywać aplikacje, takie jak kalendarze, kalkulatory i listy rzeczy do zrobienia. Aby zainstalować Tkintera, otwórz terminal i uruchom:
pip zainstaluj tkintera
Moduł Random to wbudowany moduł Pythona służący do generowania liczb pseudolosowych. Używając tego, możesz zbudować losowy generator haseł, aplikacji do symulacji rzutu kośćmi lub tasowania list. Ponadto możesz również
rozwijać ciekawe gry, takie jak krykiet ręczny i gry w zgadywanie liczb.Jak zbudować grę Memory Tile za pomocą Pythona
Możesz znaleźć kod źródłowy do budowania gry kafelkowej pamięci przy użyciu Pythona w tym Repozytorium GitHub.
Rozpocznij od zaimportowania modułu Tkinter i Random. Zainicjuj okno główne i ustaw tytuł i wymiary w pikselach.
z tkinter import *
import losowy
z tkinter import skrzynka pocztowa
pierwiastek = Tk()
root.tytuł(„Gra w płytki pamięci”)
korzeń.geometry(„760x550”)
Zdefiniuj dwie zmienne globalne i zainicjuj zmienną zwycięzcy na zero. Zadeklaruj listę przedmiotów, które pojawią się na płytkach. Zmień kolejność listy, używając losowych modułów człapać() metoda. Zdefiniuj ramkę w oknie głównym i dodaj dopełnienie 10 w kierunku pionowym.
Zainicjuj zmienną count na 0 i zadeklaruj odpowiednio listę odpowiedzi i słownik.
światowy zwycięzca, mecze
zwycięzca = 0
dopasowania = ["jabłko","jabłko","banan","banan", "Pomarańczowy","Pomarańczowy", "jagoda","jagoda","morwa","morwa", "winogrona","winogrona"]
random.shuffle (dopasowania)
my_frame = Rama (główny)
moja_ramka.pack (pady=10)
liczyć = 0
lista_odpowiedzi = []
dyktat_odpowiedzi = {}
Zdefiniuj funkcję, Resetowanie(). Ustaw tekst etykiety na pusty ciąg za pomocą konfiguracja() funkcjonować. Zdefiniuj listę przycisków, po jednej dla każdego kafelka. Przejrzyj listę i ustaw tekst na kafelku przycisku na pusty ciąg, a kolor tła na domyślny (SystemPrzyciskTwarz) i stan do normy.
pokResetowanie():
moja_etykieta.config (tekst="")
lista_przycisków = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
Do przycisk W lista_przycisków:
button.config (tekst=" ", bg=„Twarz przycisku systemowego”, stan ="normalna")
Zdefiniuj funkcję, wygrać(). Ustaw zwycięską wiadomość w parametrze tekstowym etykiety za pomocą konfiguracja() funkcjonować. Zdefiniuj listę przycisków tak jak wcześniej i wykonaj iterację, aby ustawić kolor tła kafelka na jasnozielony.
pokwygrać():
moja_etykieta.config (tekst="Gratulacje! Wygrałeś!")
lista_przycisków = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
Do przycisk W lista_przycisków:
button.config (bg=„#90EE90”)
Zdefiniuj funkcję, button_click() który przyjmuje przycisk i jego numer jako parametry wejściowe. Odwołaj się do zmiennych globalnych, listy i słownika. Jeśli tekst przycisku jest równy spacji, a liczba jest mniejsza niż dwa, wstaw i wyświetl tekst przycisku. Dołącz numer przycisku do listy odpowiedzi, a nazwę do słownika odpowiedzi. Zwiększ zmienną count o jeden.
pokprzycisk_kliknięcie(b, liczba):
światowy liczba, lista_odpowiedzi, dyktat_odpowiedzi, zwycięzca
Jeśli B["tekst"] == ' 'I liczyć < 2:
B["tekst"] = dopasowania[liczba]
answer_list.append (liczba)
answer_dict[b] = dopasowania[liczba]
liczyć += 1
Jeśli długość listy odpowiedzi wynosi dwa, oznacza to, że użytkownik wybrał dwa kafelki. Jeśli tekst pierwszego kafelka pasuje do drugiego, skonfiguruj etykietę tak, aby wyświetlała, że oba pasują poprawnie. Zmień stan przycisku na wyłączony. Ustaw licznik na zero i opróżnij listę i słownik. Zwiększ zmienną zwycięzcy o jeden, a jeśli zmieni się na sześć, wywołaj zadeklarowaną wcześniej funkcję wygranej.
Jeśli długość (lista_odpowiedzi) == 2:
Jeśli dopasowania[lista_odpowiedzi[0]] == dopasowania[lista_odpowiedzi[1]]:
moja_etykieta.config (tekst="To pasuje!")
Do klucz W odpowiedź_dykt:
klucz["państwo"] = "wyłączony"
liczyć = 0
lista_odpowiedzi = []
dyktat_odpowiedzi = {}
zwycięzca += 1
Jeśli zwycięzca == 6:
wygrać()
W przeciwnym razie zresetuj zmienną count i listę. Wyświetl okno komunikatu z tytułem i treścią przedstawiające je jako nieprawidłowe dopasowanie. Przejrzyj listę odpowiedzi i ustaw tekst kafelka na spację. Zresetuj etykietę i opróżnij słownik. Dzięki temu na przycisku i etykiecie nie będzie widocznego tekstu po wybraniu przez użytkownika nieprawidłowych kafelków.
w przeciwnym razie:
liczyć = 0
lista_odpowiedzi = []
skrzynka wiadomości.pokaż informacje("Błędny!", "Błędny")
Do klucz W odpowiedź_dykt:
klucz["tekst"] = " "
moja_etykieta.config (tekst=" ")
dyktat_odpowiedzi = {}
Zdefiniuj 12 przycisków. Ustaw okno nadrzędne, w którym chcesz je umieścić, tekst, który mają wyświetlać, styl czcionki, jaki powinny mieć, ich wysokość i szerokość oraz polecenie, które ma zostać wykonane po kliknięciu. Pamiętaj, aby użyć funkcji lambda do przekazania danych do button_click() funkcjonować. Ustaw ulga parametr do rowek, aby utworzyć efekt głębi 3D wokół przycisku.
b0 = Przycisk (moja_ramka, tekst=' ', czcionka=(„Helvetica”, 20), wysokość=4, szerokość=8, polecenie=lambda: przycisk_kliknięcie (b0, 0), relief="rowek")
b1 = Przycisk (moja_ramka, tekst=' ', czcionka=(„Helvetica”, 20), wysokość=4, szerokość=8, polecenie=lambda: przycisk_kliknięcie (b1, 1), relief="rowek")
b2 = Przycisk (moja_ramka, tekst=' ', czcionka=(„Helvetica”, 20), wysokość=4, szerokość=8, polecenie=lambda: przycisk_kliknięcie (b2, 2), relief="rowek")
b3 = Przycisk (moja_ramka, tekst=' ', czcionka=(„Helvetica”, 20), wysokość=4, szerokość=8, polecenie=lambda: przycisk_kliknięcie (b3, 3), relief="rowek")
b4 = Przycisk (moja_ramka, tekst=' ', czcionka=(„Helvetica”, 20), wysokość=4, szerokość=8, polecenie=lambda: przycisk_kliknięcie (b4, 4), relief="rowek")
b5 = Przycisk (moja_ramka, tekst=' ', czcionka=(„Helvetica”, 20), wysokość=4, szerokość=8, polecenie=lambda: przycisk_kliknięcie (b5, 5), relief="rowek")
b6 = Przycisk (moja_ramka, tekst=' ', czcionka=(„Helvetica”, 20), wysokość=4, szerokość=8, polecenie=lambda: przycisk_kliknięcie (b6, 6), relief="rowek")
b7 = Przycisk (moja_ramka, tekst=' ', czcionka=(„Helvetica”, 20), wysokość=4, szerokość=8, polecenie=lambda: przycisk_kliknięcie (b7, 7), relief="rowek")
b8 = Przycisk (moja_ramka, tekst=' ', czcionka=(„Helvetica”, 20), wysokość=4, szerokość=8, polecenie=lambda: przycisk_kliknięcie (b8, 8), relief="rowek")
b9 = Przycisk (moja_ramka, tekst=' ', czcionka=(„Helvetica”, 20), wysokość=4, szerokość=8, polecenie=lambda: przycisk_kliknięcie (b9, 9), relief="rowek")
b10 = Przycisk (moja_ramka, tekst=' ', czcionka=(„Helvetica”, 20), wysokość=4, szerokość=8, polecenie=lambda: przycisk_kliknięcie (b10, 10), relief="rowek")
b11 = Przycisk (moja_ramka, tekst=' ', czcionka=(„Helvetica”, 20), wysokość=4, szerokość=8, polecenie=lambda: przycisk_kliknięcie (b11, 11), relief="rowek")
Uporządkuj przyciski w formacie tabelarycznym składającym się z trzech wierszy i czterech kolumn za pomocą menedżera siatki Tkintera. W tym celu zadzwoń do tel siatka() metodę i przekaż wiersz wraz z numerem kolumny, w której chcesz go umieścić.
b0.grid (wiersz=0, kolumna=0)
b1.grid (wiersz=0, kolumna=1)
b2.grid (wiersz=0, kolumna=2)
b3.grid (wiersz=0, kolumna=3)
b4.grid (wiersz=1, kolumna=0)
b5.grid (wiersz=1, kolumna=1)
b6.grid (wiersz=1, kolumna=2)
b7.grid (wiersz=1, kolumna=3)
b8.grid (wiersz=2, kolumna=0)
b9.grid (wiersz=2, kolumna=1)
b10.grid (wiersz=2, kolumna=2)
b11.grid (wiersz=2, kolumna=3)
Zdefiniuj etykietę przedstawiającą pusty ciąg i dodaj dopełnienie 20 w kierunku pionowym. Zdefiniuj menu najwyższego poziomu w oknie głównym i dołącz je, obracając odrywanie parametr do FAŁSZ. Dodaj pozycję podmenu, Opcje używając dodaj_kaskadę parametr.
Dodaj dwa elementy menu wraz z poleceniami, które mają wykonać po kliknięciu w podmenu o nazwie Zresetuj grę I Wyjdź z gry. Dodaj separator między nimi w celu rozgraniczenia.
moja_etykieta = Etykieta (główny, tekst ="")
moja_etykieta.paczka (pady=20)
my_menu = Menu (główny)
root.config (menu=moje_menu)
menu_opcji = Menu (moje_menu, odrywanie =FAŁSZ)
my_menu.add_cascade (etykieta=„Opcje”, menu=menu_opcji)
option_menu.add_command (etykieta="Zresetuj grę", polecenie=resetuj)
menu_opcji.add_separator()
option_menu.add_command (etykieta="Wyjdź z gry", command=root.quit)
The główna pętla() mówi Pythonowi, aby uruchomił pętlę zdarzeń Tkinter i nasłuchiwał zdarzeń, dopóki nie zamkniesz okna.
root.mainloop()
Złóż cały kod razem. Teraz gra w kafelki pamięci jest gotowa do gry.
Wynik gry w płytki pamięci
Po uruchomieniu programu pojawia się 12 przycisków z pustym tekstem wraz z Opcje menu. Na kliknięcie Zresetuj grę, okno pojawia się w ten sam sposób.
Po wybraniu dwóch pasujących kafelków przyciski wydają się wyłączone, a etykieta pokazuje, że wybór jest prawidłowy.
Po wybraniu dwóch niepasujących kafelków pojawi się komunikat informujący, że wybór był nieprawidłowy. Przyciski i etykieta powrócą do pierwotnego pustego stanu.
Po pomyślnym dopasowaniu wszystkich opcji program zmienia kolor wszystkich kafelków na zielony i wyświetla zwycięską wiadomość.
Gry, które możesz zbudować za pomocą Pythona
Python oferuje różnorodne moduły do tworzenia gier. Aby stworzyć proste gry oparte na słowach lub wyborach, takie jak Hangman, Tic-Tac-Toe lub Rock Paper Scissors, możesz wykorzystać moduły Tkinter i Random. Aby tworzyć gry, które wymagają więcej grafiki, możesz użyć Pygame.
Pygame to zestaw modułów Pythona, który działa na wszystkich platformach. Zawiera grafikę komputerową i biblioteki dźwiękowe, które czynią gry bardziej interaktywnymi. Kilka gier, które możesz stworzyć za pomocą Pygame, to gra Snake, gra pamięciowa i Sudoku.