Bu hafıza kutucuğu oyununu oluşturarak bilişsel yeteneklerinizi kontrol edin.

Hafıza döşemesi veya eşleştirme oyunu, bilişsel yetenekleri artırmanın, hafızayı güçlendirmenin ve odaklanmayı geliştirmenin mükemmel ve eğlenceli bir yoludur. Oyunda birer birer çevirmeniz, ezberlemeniz ve eşleşenleri seçmeniz gereken bir dizi taş var. Tüm taşları doğru bir şekilde eşleştirdiğinizde oyunu kazanırsınız.

Peki Python kullanarak bu harika oyunu nasıl geliştirebilirsiniz?

Tkinter ve Random Modülleri

Hafıza döşeme oyununu Tkinter ve Random modüllerini kullanarak oluşturabilirsiniz. Tkinter, masaüstü uygulamaları oluşturmanıza olanak tanır. yapmayı kolaylaştıran düğmeler, etiketler ve metin kutuları gibi çeşitli widget'lar sunar. takvimler gibi uygulamalar geliştirin, hesap makineleri ve yapılacaklar listeleri. Tkinter'ı kurmak için terminali açın ve şunu çalıştırın:

pip kurulumu tkinter

Random modülü, sözde rasgele sayılar oluşturmak için kullanılan yerleşik bir Python modülüdür. Bunu kullanarak, rastgele bir şifre oluşturucu oluşturabilirsiniz

instagram viewer
, bir zar atma simülasyonu uygulaması veya bir liste karıştırıcı. Ayrıca şunları da yapabilirsiniz: el kriket gibi ilginç oyunlar geliştirin ve sayı tahmin oyunları.

Python Kullanarak Hafıza Döşeme Oyunu Nasıl Oluşturulur

Python kullanarak bellek kutucuğu oyunu oluşturmak için kaynak kodunu burada bulabilirsiniz. GitHub deposu.

Tkinter ve Random modülünü içe aktararak başlayın. Kök pencereyi başlatın ve başlığı ve boyutları piksel cinsinden ayarlayın.

itibaren tkinter içe aktarmak *
içe aktarmak rastgele
itibaren tkinter içe aktarmak mesaj Kutusu

kök = Tk()
root.title("Hafıza Döşeme Oyunu")
kök.geometri("760x550")

İki genel değişken tanımlayın ve kazanan değişkeni sıfır olarak başlatın. Döşemelerde görünecek öğelerin bir listesini bildirin. Rastgele modülü kullanarak listeyi yeniden sıralayın Karıştır() yöntem. Kök pencerede bir çerçeve tanımlayın ve dikey yönde 10'luk bir dolgu ekleyin.

Bir sayım değişkenini 0 olarak başlatın ve sırasıyla bir yanıt listesi ve sözlük bildirin.

küresel kazanan, maçlar
kazanan = 0
eşleşmeler = ["elma","elma","muz","muz", "turuncu","turuncu", "Yabanmersini","Yabanmersini","dut","dut", "üzüm","üzüm"]
random.shuffle (eşleşmeler)
my_frame = Çerçeve (kök)
my_frame.pack (çeltik=10)
saymak = 0
cevap_listesi = []
cevap_dikti = {}

Bir işlev tanımlayın, Sıfırla(). kullanarak etiketin metnini boş bir dizeye ayarlayın. yapılandırma() işlev. Kutucukların her biri için bir düğme listesi tanımlayın. Listeyi yineleyin ve düğme döşemesindeki metni boş bir dizeye, arka plan rengini varsayılana (SistemDüğmesiYüz) ve durum normale döner.

kesinlikleSıfırla():
my_label.config (metin="")
button_list = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
için düğme içinde düğme_listesi:
button.config (metin=" ", bg="SistemDüğmesiYüzü", durum="normal")

Bir işlev tanımlayın, kazanç(). kullanarak etiketin metin parametresinde kazanan bir mesaj ayarlayın. yapılandırma() işlev. Düğme listesini daha önce tanımlayın ve kutucuğun arka plan rengini açık yeşil olarak ayarlamak için yineleyin.

kesinliklekazanç():
my_label.config (metin="Tebrikler! Sen kazandın!")
button_list = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
için düğme içinde düğme_listesi:
button.config (bg="#90EE90")

Bir işlev tanımlayın, button_click() bu, düğmeyi ve numarasını giriş parametreleri olarak alır. Global değişkenlere, listeye ve sözlüğe başvurun. Düğmenin metni bir boşluğa eşitse ve sayı ikiden azsa, düğmenin metnini ekleyin ve görüntüleyin. Düğme numarasını yanıt listesine ve adı yanıt sözlüğüne ekleyin. Count değişkenini bir artırın.

kesinliklebutton_click(b, sayı):
küresel say, cevap_listesi, cevap_dikte, kazanan
eğer B["metin"] == ' 'Ve saymak < 2:
B["metin"] = [sayı] ile eşleşir
answer_list.append (sayı)
answer_dict[b] = [sayı] ile eşleşir
saymak += 1

Cevap listesinin uzunluğu iki ise, kullanıcının iki kutucuk seçtiği anlamına gelir. İlk kutucuğun metni diğeriyle eşleşirse, etiketi her ikisinin de doğru şekilde eşleştiğini gösterecek şekilde yapılandırın. Düğmenin durumunu devre dışı bırakın. Sayımı sıfıra ayarlayın ve listeyi ve sözlüğü boşaltın. Kazanan değişkeni bir artırın ve altıya dönerse, daha önce açıklanan kazanma işlevini çağırın.

eğer len (cevap_listesi) == 2:
eğer eşleşir[answer_list[0]] == eşleşir[answer_list[1]]:
my_label.config (metin="Bu bir Maç!")
için anahtar içinde answer_dict:
anahtar["durum"] = "engelli"
saymak = 0
cevap_listesi = []
cevap_dikti = {}
kazanan += 1
eğer kazanan == 6:
kazanç()

Aksi takdirde, sayım değişkenini ve listeyi sıfırlayın. Başlık ve içeriğin yanlış bir eşleşme olduğunu gösteren bir mesaj kutusu görüntüleyin. Yanıt listesini yineleyin ve kutucuğun metnini bir boşluk olarak ayarlayın. Etiketi sıfırlayın ve sözlüğü boşaltın. Bu, kullanıcı yanlış döşemeleri seçtikten sonra düğmede ve etikette görünür metin olmamasını sağlar.

başka:
saymak = 0
cevap_listesi = []
mesaj kutusu.showinfo("Yanlış!", "Yanlış")
için anahtar içinde answer_dict:
anahtar["metin"] = " "
my_label.config (metin=" ")
cevap_dikti = {}

12 düğme tanımlayın. Bunları yerleştirmek istediğiniz ana pencereyi, görüntülemeleri gereken metni, sahip olmaları gereken yazı tipi stilini, yüksekliklerini ve genişliklerini ve tıklandığında yürütülecek komutu ayarlayın. Verileri iletmek için lambda işlevini kullanmayı unutmayın. button_click() işlev. Yı kur rahatlama parametre için oluk düğmesinin etrafında 3-D derinlik efekti oluşturmak için.

b0 = Düğme (my_frame, metin=' ', yazı tipi=("Helvetika", 20), yükseklik=4, genişlik=8, komut=lambda: button_click (b0, 0), rahatlama="oluk")
b1 = Düğme (my_frame, metin=' ', yazı tipi=("Helvetika", 20), yükseklik=4, genişlik=8, komut=lambda: button_click (b1, 1), rahatlama="oluk")
b2 = Düğme (my_frame, metin=' ', yazı tipi=("Helvetika", 20), yükseklik=4, genişlik=8, komut=lambda: button_click (b2, 2), rahatlama="oluk")
b3 = Düğme (my_frame, metin=' ', yazı tipi=("Helvetika", 20), yükseklik=4, genişlik=8, komut=lambda: button_click (b3, 3), rahatlama="oluk")
b4 = Düğme (my_frame, metin=' ', yazı tipi=("Helvetika", 20), yükseklik=4, genişlik=8, komut=lambda: button_click (b4, 4), rahatlama="oluk")
b5 = Düğme (my_frame, metin=' ', yazı tipi=("Helvetika", 20), yükseklik=4, genişlik=8, komut=lambda: button_click (b5, 5), rahatlama="oluk")
b6 = Düğme (my_frame, metin=' ', yazı tipi=("Helvetika", 20), yükseklik=4, genişlik=8, komut=lambda: button_click (b6, 6), rahatlama="oluk")
b7 = Düğme (my_frame, metin=' ', yazı tipi=("Helvetika", 20), yükseklik=4, genişlik=8, komut=lambda: button_click (b7, 7), rahatlama="oluk")
b8 = Düğme (my_frame, metin=' ', yazı tipi=("Helvetika", 20), yükseklik=4, genişlik=8, komut=lambda: button_click (b8, 8), rahatlama="oluk")
b9 = Düğme (my_frame, metin=' ', yazı tipi=("Helvetika", 20), yükseklik=4, genişlik=8, komut=lambda: button_click (b9, 9), rahatlama="oluk")
b10 = Düğme (my_frame, metin=' ', yazı tipi=("Helvetika", 20), yükseklik=4, genişlik=8, komut=lambda: button_click (b10, 10), rahatlama="oluk")
b11 = Düğme (my_frame, metin=' ', yazı tipi=("Helvetika", 20), yükseklik=4, genişlik=8, komut=lambda: button_click (b11, 11), rahatlama="oluk")

Tkinter'in ızgara yöneticisini kullanarak düğmeleri üç satır ve dört sütundan oluşan tablo biçiminde düzenleyin. Bunu yapmak için Kafes() yöntemini seçin ve satırı, yerleştirmek istediğiniz sütun numarasıyla birlikte geçirin.

b0.grid (satır=0, sütun=0)
b1.grid (satır=0, sütun=1)
b2.grid (satır=0, sütun=2)
b3.grid (satır=0, sütun=3)
b4.grid (satır=1, sütun=0)
b5.grid (satır=1, sütun=1)
b6.grid (satır=1, sütun=2)
b7.grid (satır=1, sütun=3)
b8.grid (satır=2, sütun=0)
b9.grid (satır=2, sütun=1)
b10.grid (satır=2, sütun=2)
b11.grid (satır=2, sütun=3)

Boş bir dize gösteren bir etiket tanımlayın ve dikey yönde 20'lik bir dolgu ekleyin. Kök pencerede bir üst düzey menü tanımlayın ve düğmeyi çevirerek ekleyin. sıyırmak parametre için YANLIŞ. Bir alt menü öğesi ekleyin, Seçenekler kullanmak add_cascade parametre.

adlı alt menüde tıklandığında çalıştırmaları gereken komutlarla birlikte iki menü öğesi ekleyin. Oyunu sıfırla Ve Oyundan çıkış. Sınır için aralarına bir ayırıcı ekleyin.

my_label = Etiket (kök, metin="")
my_label.pack (çeltik=20)

my_menu = Menü (kök)
root.config (menü=benim_menüm)
options_menu = Menü (benim_menüm, ayırma=YANLIŞ)
my_menu.add_cascade (etiket="Seçenekler", menü=seçenek_menü)
options_menu.add_command (etiket="Oyunu sıfırla", komut=sıfırla)
options_menu.add_separator()
options_menu.add_command (etiket="Oyundan çıkış", komut=root.quit)

bu Ana döngü() işlevi, Python'a Tkinter olay döngüsünü çalıştırmasını ve siz pencereyi kapatana kadar olayları dinlemesini söyler.

root.mainloop()

Tüm kodu bir araya getirin. Artık hafıza kiremit oyunu oynamaya hazır.

Hafıza Döşeme Oyununun Çıktısı

Programı çalıştırırken, boş metinle birlikte 12 düğme görünür. Seçenekler Menü. tıklandığında Oyunu sıfırla, pencere aynı şekilde görünür.

Eşleşen iki karo seçildiğinde, düğmeler devre dışı görünür ve etiket, seçimin doğru olduğunu gösterir.

Eşleşmeyen iki karo seçildiğinde, seçimin yanlış olduğunu belirten bir mesaj kutusu belirir. Düğmeler ve etiket orijinal boş durumuna geri döner.

Tüm seçenekleri başarıyla eşleştirdiğinizde, program tüm karoları yeşile çevirir ve kazanan mesajı görüntüler.

Python Kullanarak Yapabileceğiniz Oyunlar

Python, oyun oluşturmak için çeşitli modüller sunar. Hangman, Tic-Tac-Toe veya Rock Paper Scissors gibi basit kelime veya seçim tabanlı oyunlar oluşturmak için Tkinter ve Random modüllerini kullanabilirsiniz. Daha fazla grafik gerektiren oyunlar geliştirmek için Pygame'i kullanabilirsiniz.

Pygame, tüm platformlarda çalışan bir dizi Python modülüdür. Oyunları daha etkileşimli hale getiren bilgisayar grafikleri ve ses kitaplıkları içerir. Pygame kullanarak oluşturabileceğiniz oyunlardan birkaçı, Yılan oyunu, hafıza bulmaca oyunu ve Sudoku'dur.