Periksa kemampuan kognitif Anda dengan membangun game ubin memori ini.

Ubin memori atau permainan mencocokkan adalah cara yang bagus dan menyenangkan untuk meningkatkan kemampuan kognitif, meningkatkan memori, dan meningkatkan fokus. Gim ini memiliki seperangkat ubin yang harus Anda balik satu per satu, hafalkan, dan pilih ubin yang cocok. Saat mencocokkan semua ubin dengan benar, Anda memenangkan permainan.

Jadi bagaimana Anda bisa mengembangkan game luar biasa ini menggunakan Python?

Modul Tkinter dan Acak

Anda dapat membuat game petak memori menggunakan modul Tkinter dan Random. Tkinter memungkinkan Anda membuat aplikasi desktop. Ini menawarkan berbagai widget seperti tombol, label, dan kotak teks yang membuatnya lebih mudah mengembangkan aplikasi seperti kalender, kalkulator, dan daftar tugas. Untuk menginstal Tkinter, buka terminal dan jalankan:

pip instal tkinter

Modul Random adalah modul Python bawaan yang digunakan untuk menghasilkan angka pseudo-random. Menggunakan ini, Anda dapat membuat generator kata sandi acak

instagram viewer
, aplikasi simulasi lemparan dadu, atau pengocok daftar. Selain itu, Anda juga bisa kembangkan game menarik seperti kriket tangan dan permainan tebak angka.

Cara Membangun Game Ubin Memori Menggunakan Python

Anda dapat menemukan kode sumber untuk membuat game petak memori menggunakan Python di sini repositori GitHub.

Mulailah dengan mengimpor modul Tkinter dan Random. Inisialisasi jendela akar, dan atur judul dan dimensi dalam piksel.

dari tkinter impor *
impor acak
dari tkinter impor kotak pesan

akar = Tk()
root.judul('Permainan Ubin Memori')
root.geometri("760x550")

Tentukan dua variabel global dan inisialisasi variabel pemenang ke nol. Deklarasikan daftar item yang akan muncul di ubin. Susun ulang daftar menggunakan modul acak acak() metode. Tentukan bingkai di jendela root dan tambahkan padding 10 ke arah vertikal.

Inisialisasi variabel hitungan ke 0 dan nyatakan masing-masing daftar jawaban dan kamus.

global pemenang, pertandingan
pemenang = 0
cocok = ["apel","apel","pisang","pisang", "oranye","oranye", "bluberi","bluberi","murbai","murbai", "anggur","anggur"]
random.shuffle (cocok)
my_frame = Bingkai (akar)
my_frame.pack (pady=10)
menghitung = 0
daftar_jawaban = []
jawaban_dikt = {}

Tentukan fungsi, mengatur ulang(). Setel teks label ke string kosong menggunakan konfigurasi() fungsi. Tentukan daftar tombol, satu untuk setiap ubin. Ulangi daftar dan setel teks pada ubin tombol ke string kosong, warna latar belakang ke default (SystemButtonFace), dan keadaan normal.

defmengatur ulang():
my_label.config (teks="")
daftar_tombol = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
untuk tombol di dalam daftar_tombol:
tombol.config (teks=" ", bg="SistemTombolWajah", keadaan="normal")

Tentukan fungsi, menang(). Tetapkan pesan pemenang di parameter teks label menggunakan konfigurasi() fungsi. Tetapkan daftar tombol seperti sebelumnya dan ulangi untuk menyetel warna latar ubin menjadi hijau muda.

defmenang():
my_label.config (teks="Selamat! Kamu menang!")
daftar_tombol = [b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11]
untuk tombol di dalam daftar_tombol:
tombol.config (bg="#90EE90")

Tentukan fungsi, tombol_klik() yang menggunakan tombol dan nomornya sebagai parameter masukan. Referensi variabel global, daftar, dan kamus. Jika teks tombol sama dengan spasi dan jumlahnya kurang dari dua, maka sisipkan dan tampilkan teks tombol. Tambahkan nomor tombol ke daftar jawaban dan nama ke kamus jawaban. Naikkan variabel hitungan satu per satu.

deftombol_klik(b, nomor):
global hitung, daftar_jawaban, jawaban_dikt, pemenang
jika B["teks"] == ' 'Dan menghitung < 2:
B["teks"] = cocok[angka]
answer_list.append (angka)
answer_dict[b] = cocok dengan[angka]
hitung += 1

Jika panjang daftar jawaban adalah dua, berarti pengguna telah memilih dua petak. Jika teks petak pertama cocok dengan yang lain, konfigurasikan label untuk menampilkan bahwa keduanya cocok dengan benar. Ubah status tombol menjadi nonaktif. Setel hitungan ke nol, dan kosongkan daftar dan kamus. Tingkatkan variabel pemenang satu per satu dan jika berubah menjadi enam, panggil fungsi win yang dideklarasikan sebelumnya.

jika len (daftar_jawaban) == 2:
jika cocok[daftar_jawaban[0]] == cocok[daftar_jawaban[1]]:
my_label.config (teks="Ini Pertandingan!")
untuk kunci di dalam jawaban_dikt:
kunci["negara"] = "dengan disabilitas"
menghitung = 0
daftar_jawaban = []
jawaban_dikt = {}
pemenang += 1
jika pemenang == 6:
menang()

Jika tidak, setel ulang variabel hitungan dan daftar. Tampilkan kotak pesan dengan judul dan konten yang menggambarkannya sebagai kecocokan yang salah. Ulangi daftar jawaban dan atur teks ubin ke spasi. Setel ulang label dan kosongkan kamus. Ini memastikan bahwa tidak ada teks yang terlihat pada tombol dan label setelah pengguna memilih petak yang salah.

kalau tidak:
menghitung = 0
daftar_jawaban = []
kotak pesan.showinfo("Salah!", "Salah")
untuk kunci di dalam jawaban_dikt:
kunci["teks"] = " "
my_label.config (teks=" ")
jawaban_dikt = {}

Tentukan 12 tombol. Setel jendela induk tempat Anda ingin menempatkannya, teks yang harus ditampilkan, gaya font yang harus dimiliki, tinggi dan lebarnya, dan perintah untuk dijalankan saat diklik. Ingatlah untuk menggunakan fungsi lambda untuk meneruskan data ke tombol_klik() fungsi. Mengatur lega parameter ke alur untuk membuat efek kedalaman 3-D di sekitar tombol.

b0 = Tombol (bingkai_saya, teks=' ', jenis huruf=("Helvetica", 20), tinggi =4, lebar=8, perintah=lambda: tombol_klik (b0, 0), lega="alur")
b1 = Tombol (bingkai_saya, teks=' ', jenis huruf=("Helvetica", 20), tinggi =4, lebar=8, perintah=lambda: tombol_klik (b1, 1), lega="alur")
b2 = Tombol (bingkai_saya, teks=' ', jenis huruf=("Helvetica", 20), tinggi =4, lebar=8, perintah=lambda: tombol_klik (b2, 2), lega="alur")
b3 = Tombol (bingkai_saya, teks=' ', jenis huruf=("Helvetica", 20), tinggi =4, lebar=8, perintah=lambda: tombol_klik (b3, 3), lega="alur")
b4 = Tombol (bingkai_saya, teks=' ', jenis huruf=("Helvetica", 20), tinggi =4, lebar=8, perintah=lambda: tombol_klik (b4, 4), lega="alur")
b5 = Tombol (bingkai_saya, teks=' ', jenis huruf=("Helvetica", 20), tinggi =4, lebar=8, perintah=lambda: tombol_klik (b5, 5), lega="alur")
b6 = Tombol (bingkai_saya, teks=' ', jenis huruf=("Helvetica", 20), tinggi =4, lebar=8, perintah=lambda: tombol_klik (b6, 6), lega="alur")
b7 = Tombol (bingkai_saya, teks=' ', jenis huruf=("Helvetica", 20), tinggi =4, lebar=8, perintah=lambda: tombol_klik (b7, 7), lega="alur")
b8 = Tombol (bingkai_saya, teks=' ', jenis huruf=("Helvetica", 20), tinggi =4, lebar=8, perintah=lambda: tombol_klik (b8, 8), lega="alur")
b9 = Tombol (bingkai_saya, teks=' ', jenis huruf=("Helvetica", 20), tinggi =4, lebar=8, perintah=lambda: tombol_klik (b9, 9), lega="alur")
b10 = Tombol (bingkai_saya, teks=' ', jenis huruf=("Helvetica", 20), tinggi =4, lebar=8, perintah=lambda: tombol_klik (b10, 10), lega="alur")
b11 = Tombol (bingkai_saya, teks=' ', jenis huruf=("Helvetica", 20), tinggi =4, lebar=8, perintah=lambda: tombol_klik (b11, 11), lega="alur")

Atur tombol dalam format tabular yang terdiri dari tiga baris dan empat kolom menggunakan pengelola kisi Tkinter. Untuk melakukannya, hubungi kisi() metode dan berikan baris bersama dengan nomor kolom yang ingin Anda tempatkan.

b0.grid (baris=0, kolom=0)
b1.grid (baris=0, kolom=1)
b2.grid (baris=0, kolom=2)
b3.grid (baris=0, kolom=3)
b4.grid (baris=1, kolom=0)
b5.grid (baris=1, kolom=1)
b6.grid (baris=1, kolom=2)
b7.grid (baris=1, kolom=3)
b8.grid (baris=2, kolom=0)
b9.grid (baris=2, kolom=1)
b10.grid (baris=2, kolom=2)
b11.grid (baris=2, kolom=3)

Tentukan label yang menampilkan string kosong dan tambahkan padding 20 pada arah vertikal. Tentukan menu tingkat atas pada jendela root dan pasang dengan memutar sobek parameter ke PALSU. Tambahkan item sub-menu, Pilihan menggunakan add_cascade parameter.

Tambahkan dua item menu bersama dengan perintah yang harus mereka jalankan saat diklik di submenu bernama Atur Ulang Permainan Dan Keluar permainan. Tambahkan pemisah di antara mereka untuk demarkasi.

my_label = Label (akar, teks="")
my_label.pack (pady=20)

my_menu = Menu (akar)
root.config (menu=my_menu)
option_menu = Menu (my_menu, tearoff=PALSU)
my_menu.add_cascade (label="Pilihan", menu=menu_pilihan)
option_menu.add_command (label="Atur Ulang Permainan", perintah=setel ulang)
option_menu.add_separator()
option_menu.add_command (label="Keluar permainan", perintah=root.berhenti)

Itu mainloop() fungsi memberi tahu Python untuk menjalankan loop acara Tkinter dan mendengarkan acara sampai Anda menutup jendela.

root.mainloop()

Gabungkan semua kode. Sekarang permainan ubin memori siap dimainkan.

Output dari Game Ubin Memori

Saat menjalankan program, 12 tombol muncul dengan teks kosong bersama dengan Pilihan menu. Saat mengklik Atur Ulang Permainan, jendela muncul dengan cara yang sama.

Saat memilih dua petak yang cocok, tombol tampak dinonaktifkan dan label menampilkan bahwa pilihannya benar.

Saat memilih dua petak yang tidak cocok, kotak pesan akan muncul yang menunjukkan bahwa pemilihan salah. Tombol dan label kembali ke keadaan kosong aslinya.

Saat berhasil mencocokkan semua pilihan, program mengubah semua ubin menjadi hijau dan menampilkan pesan pemenang.

Game yang Dapat Anda Bangun Menggunakan Python

Python menawarkan berbagai modul untuk membuat game. Untuk membuat permainan berbasis kata atau pilihan sederhana seperti Hangman, Tic-Tac-Toe, atau Rock Paper Scissors, Anda dapat menggunakan modul Tkinter dan Random. Untuk mengembangkan game yang membutuhkan lebih banyak grafis, Anda dapat menggunakan Pygame.

Pygame adalah sekumpulan modul Python yang berfungsi di semua platform. Ini termasuk grafik komputer dan perpustakaan suara yang membuat game lebih interaktif. Beberapa game yang dapat Anda buat menggunakan Pygame termasuk game Snake, game puzzle memori, dan Sudoku.