Rumah > Artikel > pembangunan bahagian belakang > Cara membuat permainan tic-tac-toe mudah berdasarkan Python
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.
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.
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.
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!