Grundgerüst
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)
Nach dem Login kopieren
In diesem Code haben wir zuerst das Modul tkinter
und das Modul tkinter.messagebox
importiert. Dann erstellen wir ein Tk
-Objekt mit dem Namen root
und legen seinen Titel fest. Wir haben es hier Tic Tac Toe genannt. tkinter
模块和 tkinter.messagebox
模块。然后,我们创建了一个名为 root
的 Tk
对象,并设置了它的标题。我们这里命名为井字棋。
接着,我们创建了两个 Label
对象,并将它们放置在根窗口中的第一行和第二列。Label
对象的文本分别是 player1 : X
和 player2 : O
,它们的字体大小为 15 像素。
最后,我们创建了一个名为 msg
的 messagebox
Als nächstes erstellen wir zwei
Label
-Objekte und platzieren sie in der ersten Zeile und zweiten Spalte des Stammfensters. Die Texte der
Label
-Objekte sind jeweils
player1 : X
und
player2 : O
und ihre Schriftgröße beträgt 15 Pixel.
Schließlich erstellen wir ein
messagebox
-Objekt mit dem Namen
msg
und zeigen es im Root-Fenster an. Wenn der Benutzer auf eine Schaltfläche im Meldungsfeld klickt, wird das Meldungsfeld im Hauptfenster des Benutzers angezeigt, sodass der Benutzer es sehen kann. In diesem Beispiel zeigen wir einfach ein Meldungsfeld an.
Schaltfläche definieren
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)
Nach dem Login kopieren
Dieser Code ist die Python-Implementierung der Button-Komponente im Tkinter-Modul. In Tkinter können mit dem Button-Widget Schaltflächen erstellt werden, die als Reaktion auf Benutzerereignisse angeklickt werden können.
Wir haben neun Schaltflächenkomponenten deklariert und die Eigenschaften und Methoden jeder Komponente konfiguriert. Der Codeausschnitt jeder Button-Komponente unterscheidet sich geringfügig von der vorherigen Button-Komponente, da es sich bei diesem Code um eine vollständige Tkinter-Anwendung handelt, einschließlich Fenstern, Beschriftungen, Schaltflächen und anderen Widgets.
In unserem Beispiel verwenden wir den Layout-Manager Grid in Tkinter, um 9 Schaltflächenkomponenten in Spalten anzuordnen und die Breite jeder Schaltfläche auf 15 Pixel festzulegen. Was je nach Bedarf angepasst werden kann, ist die Breite der Button-Komponente im Tkinter-Fenster.
Abschließend richten wir eine Lambda-Funktion ein, um bestimmte Vorgänge für jede Button-Komponente auszuführen. Diese Lambda-Funktion ist eine unbenannte Funktion, die einen Parameter akzeptiert, der die Nummer der Button-Komponente darstellt. In diesem Beispiel richten wir für jede Button-Komponente eine Lambda-Funktion ein, um die Checker-Komponente aufzurufen, eine rekursive Funktion, die die angegebene Zahl überprüft. Spezifische Details zur Implementierung der Checker-Komponente finden Sie in den einzelnen Funktionen in der offiziellen Tkinter-Dokumentation.
Funktionsimplementierung
Wir zeigen hier nur einen Teil des Codes, der Rest ist derselbe.
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()
Nach dem Login kopieren
Unser Code definiert einen Zähler und zwei Markierungen, Ziffer und Marke. Der Zählerstand gibt an, wie viele Schleifen beurteilt und die entsprechende Operation ausgeführt werden müssen.
Wenn die Ziffer gleich 1 ist und die Ziffer in Ziffern vorliegt, wird die Ziffer aus den Ziffern entfernt und die Aktion von Spieler 1 oder 2 wird basierend auf der Zählparität entschieden. Wenn count eine gerade Zahl ist, spielt Spieler 1 das Spiel, andernfalls spielt Spieler 2 das Spiel.
Wenn in jeder Schleife der Rest von count dividiert durch 2 0 ist, dann ist mark gleich X und panel[digit] wird auf mark gesetzt. Wenn mark gleich O ist, setzen Sie panel[digit] auf mark.
Dann legen Sie mark als Text der Schaltflächenkomponente button1 fest, addieren count um 1, setzen sign als Markierung und der Gewinner des Spiels wird anhand des Werts von sign ermittelt. Wenn Spieler 1 das Spiel gewinnt, wird die Meldung „Ergebnis“ angezeigt und das Fenster geschlossen. Wenn Spieler 2 das Spiel gewinnt, wird die Meldung „Ergebnis“ angezeigt und das Fenster geschlossen.
In jedem Zyklus wird der Gewinner des Spiels anhand des Werts des Zeichens ermittelt. Wenn das Spiel von Spieler 1 gewonnen wird und das Vorzeichen gleich X ist, wird eine „Ergebnis“-Meldung angezeigt und das Fenster wird geschlossen. Wenn Spieler 2 gewinnt und das Zeichen O ist, sollte die Meldung „Ergebnis“ angezeigt und das Fenster geschlossen werden.
Effekt
🎜🎜🎜
Das obige ist der detaillierte Inhalt vonWie man ein einfaches Tic-Tac-Toe-Spiel auf Basis von Python erstellt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!