Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara membuat permainan tic-tac-toe mudah berdasarkan Python

Cara membuat permainan tic-tac-toe mudah berdasarkan Python

WBOY
WBOYke hadapan
2023-05-19 14:29:371455semak imbas

Rangka kerja asas

from tkinter import *  
import tkinter.messagebox as msg  
  
root = Tk()  
root.title('井字棋')  
# labels  
Label(root, text="player1 : X", font="times 15").grid(row=0, column=1)  
Label(root, text="player2 : O", font="times 15").grid(row=0, column=2)

Dalam kod ini, kami mula-mula mengimport modul tkinter dan modul tkinter.messagebox. Kemudian, kami mencipta objek root bernama Tk dan menetapkan tajuknya. Kami menamakannya Tic Tac Toe di sini.

Seterusnya, kami mencipta dua Label objek dan meletakkannya di baris pertama dan lajur kedua tetingkap akar. Teks objek Label masing-masing ialah player1 : X dan player2 : O, dan saiz fonnya ialah 15 piksel.

Akhir sekali, kami mencipta objek msg bernama messagebox dan memaparkannya dalam tetingkap akar. Apabila pengguna mengklik butang dalam kotak mesej, kotak mesej dipaparkan dalam tetingkap utama pengguna supaya pengguna dapat melihatnya. Dalam contoh ini, kami hanya memaparkan kotak mesej.

Buang takrif

button1 = Button(root, width=15, font=('Times 16 bold'), height=7, command=lambda: checker(1))  
button1.grid(row=1, column=1)  
button2 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(2))  
button2.grid(row=1, column=2)  
button3 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(3))  
button3.grid(row=1, column=3)  
button4 = Button(root, width=15, height=7, font=('Times 16 bold'), command=lambda: checker(4))  
button4.grid(row=2, column=1)

Kod ini ialah pelaksanaan Python bagi komponen Button dalam modul Tkinter. Dalam Tkinter, widget Button boleh digunakan untuk mencipta butang yang boleh diklik sebagai tindak balas kepada acara pengguna.

Kami telah mengisytiharkan sembilan komponen butang dan mengkonfigurasi sifat dan kaedah setiap komponen. Coretan kod setiap komponen Butang berbeza sedikit daripada komponen Button sebelumnya, kerana kod ini adalah aplikasi Tkinter yang lengkap, termasuk tingkap, label, butang dan widget lain.

Dalam contoh kami, kami menggunakan Grid pengurus susun atur dalam Tkinter untuk menyusun komponen 9 Butang dalam lajur dan menetapkan lebar setiap butang kepada 15 piksel. Apa yang boleh dilaraskan mengikut keperluan ialah lebar komponen Button dalam tetingkap Tkinter.

Akhir sekali, kami menyediakan fungsi lambda untuk melaksanakan tindakan khusus bagi setiap komponen Butang. Fungsi lambda ini ialah fungsi tanpa nama yang menerima satu parameter yang mewakili nombor komponen Butang. Dalam contoh ini, kami menyediakan fungsi lambda untuk setiap komponen Butang untuk memanggil komponen Checker, iaitu fungsi rekursif yang menyemak nombor yang ditentukan. Untuk butiran khusus tentang melaksanakan komponen Checker, sila rujuk kepada fungsi individu dalam dokumentasi rasmi Tkinter.

Pelaksanaan Fungsi

Kami hanya akan menunjukkan sebahagian daripada kod di sini, dan selebihnya tulisan adalah sama.

if digit == 1 and digit in digits:  
digits.remove(digit)  
##player1 will play if the value of count is even and for odd player2 will play  
if count % 2 == 0:  
mark = 'X'  
panels[digit] = mark  
elif count % 2 != 0:  
mark = 'O'  
panels[digit] = mark  
  
button1.config(text=mark)  
count = count + 1  
sign = mark  
  
if (win(panels, sign) and sign == 'X'):  
msg.showinfo("Result", "Player1 wins")  
root.destroy()  
elif (win(panels, sign) and sign == 'O'):  
msg.showinfo("Result", "Player2 wins")  
root.destroy()

Kod kami mentakrifkan pembilang dan dua penanda, digit dan tanda. Kiraan pembilang menunjukkan bilangan gelung untuk menilai dan melaksanakan operasi yang sepadan.

Jika digit sama dengan 1 dan digit dalam digit, keluarkan digit daripada digit dan tindakan pemain 1 atau 2 diputuskan berdasarkan pariti kiraan. Jika kiraan ialah nombor genap, pemain 1 akan bermain permainan, jika tidak pemain 2 akan bermain permainan itu.

Dalam setiap gelung, jika baki kiraan dibahagikan dengan 2 ialah 0, maka tanda adalah sama dengan X dan panel[digit] ditetapkan untuk menandakan. Jika tanda sama dengan O, kemudian tetapkan panel[digit] untuk menandakan.

Kemudian, tetapkan tanda pada teks butang komponen butang1, tambah kiraan dengan 1, tetapkan tanda untuk menandakan, dan tentukan pemenang permainan berdasarkan nilai tanda. Jika pemain 1 memenangi permainan, mesej "Keputusan" dipaparkan dan tetingkap ditutup. Jika pemain 2 memenangi permainan, mesej "Keputusan" dipaparkan dan tetingkap ditutup.

Dalam setiap kitaran, pemenang permainan ditentukan berdasarkan nilai tanda. Apabila permainan dimenangi oleh pemain 1 dan tandatangan sama dengan X, mesej "Keputusan" akan dipaparkan dan tetingkap akan ditutup. Apabila pemain 2 menang dan tanda O, mesej "Hasil" harus dipaparkan dan tingkap ditutup.

Kesan

Cara membuat permainan tic-tac-toe mudah berdasarkan Python

Atas ialah kandungan terperinci Cara membuat permainan tic-tac-toe mudah berdasarkan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam