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)
我們在這段程式碼中,我們先匯入了 tkinter
模組和 tkinter.messagebox
模組。然後,我們建立了一個名為 root
的 Tk
對象,並設定了它的標題。我們這裡命名為井字棋。
接著,我們建立了兩個 Label
對象,並將它們放在根視窗中的第一行和第二列。 Label
物件的文字分別是 player1 : X
和 player2 : O
,它們的字體大小為 15 像素。
最後,我們建立了一個名為 msg
的 messagebox
對象,並將其顯示在根視窗中。當使用者點擊訊息框中的按鈕時,訊息框將顯示在使用者的主視窗中,以便使用者可以看到它。在這個例子中,我們只是簡單地顯示了一個訊息框。
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)
這段程式碼是Tkinter模組中Button元件的Python實作。在Tkinter中,Button小工具可以被使用來建立按鈕,該按鈕可以被點擊,以回應使用者的事件。
我們已經宣告了九個按鈕元件,對每個元件進行了屬性和方法的配置。每個Button元件的程式碼片段都與先前的Button元件略有不同,因為這段程式碼是一個完整的Tkinter應用程序,包括了視窗、標籤、按鈕等小部件。
在我們這個範例中,我們使用了Tkinter中的佈局管理器Grid,將9個Button元件按照列進行排列,每個按鈕的寬度都設定為15個像素。可以依需求自行調整的是Button元件在Tkinter視窗中的寬度。
最後,我們設定了一個 lambda 函數,為每個 Button 元件執行特定的操作。這個lambda函數是一種無名函數,可接受一個參數表示Button元件的編號。在這個範例中,我們為每個Button元件設定了一個lambda函數,用於呼叫Checker元件,該元件是一個遞歸函數,用於檢查指定的編號。實作Checker元件的具體細節請參考Tkinter官方文件中的單獨函數。
我們這裡程式碼就展示一部分,剩下的寫法都是一樣的。
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()
我們這段程式碼定義了一個計數器和兩個標記digit和mark。計數器count表示要在多少次循環中判斷並執行對應的操作。
如果digit等於1且digit在digits中,則從digits中刪除digit,並且根據count的奇偶性來決定玩家1或2的操作。如果count是偶數,則玩家1將玩遊戲,否則玩家2將玩遊戲。
在每次循環中,如果count除以2的餘數是0,則mark等於X,將panel[digit]設為mark。如果mark等於O,那麼就把panel[digit]設為mark。
然後,將mark設定為按鈕元件button1的文本,將count加1,將sign設為mark,並將根據sign的值來決定遊戲的勝者。如果玩家1贏得遊戲,則顯示「Result」訊息,並關閉視窗。如果玩家2贏得遊戲,則顯示「Result」訊息,並關閉視窗。
在每次循環中,依照sign的值來判斷遊戲的勝者。當遊戲被玩家1獲勝且sign等於X時,將會顯示一個「Result」訊息並關閉視窗。當玩家2獲勝且sign為O時,應顯示「Result」訊息並關閉視窗。
以上是基於Python怎麼製作簡單的井字棋遊戲的詳細內容。更多資訊請關注PHP中文網其他相關文章!