Wie benutze ich den Text einer Tkinter -Schaltfläche in einer Weile Schleife?Python

Python-Programme
Guest
 Wie benutze ich den Text einer Tkinter -Schaltfläche in einer Weile Schleife?

Post by Guest »

Ich versuche, ein Tic-Tac-Toe-Spiel mit Tkinter zu machen, um die Bibliothek zu lernen. Ich habe ein 3x3 -Raster eingerichtet und mit Tasten gefüllt. Wenn Sie auf eine Schaltfläche klicken, ändert es je nach Turn -Variable auf X oder O. Um das Spiel zu stoppen, wenn entweder X oder O gewinnt, versuche ich eine Weile zu verwenden, um es zu bestimmen. < /P>

Code: Select all

turn = "X"

btn = tk.Button(root, text = "", height = 4, width = 10)
btn.grid(row = 0, column = 0)

btn2 = tk.Button(root, text = "", height = 4, width = 10)
btn2.grid(row = 0, column = 1)

btn3 = tk.Button(root, text = "", height = 4, width = 10)
btn3.grid(row = 0, column = 2)

while btn.cget('text') != "X" and btn2.cget('text') != "X" and btn3.cget('text') != "X":
def on_click():
global turn
if turn == "X":
btn.config(text = "X")
turn = "O"
else:
btn.config(text = "O")
turn = "X"
def on_click2():
global turn
if turn == "X":
btn2.config(text = "X")
turn = "O"
else:
btn2.config(text = "O")
turn = "X"
def on_click3():
global turn
if turn == "X":
btn3.config(text = "X")
turn = "O"
else:
btn3.config(text = "O")
turn = "X"
< /code>
Dies ist die Zeit, die ich ausprobiert habe, weil ich es nachgeschlagen habe und eine Website sagte, dass .Cget der richtige Weg war, aber es funktionierte nicht. Ich habe auch den Inhalt der Zeitschleife nicht aufgenommen, da ich nicht glaube, dass sie ihn in irgendeiner Weise unterbrechen würden. Darüber hinaus enthalten meine Schaltflächen, wie oben initiiert, keinen Text enthalten und werden nur dann mit X oder O gefüllt, wenn sie angeklickt werden. Ich verwende die Leerlaufschale 3.13.0.Traceback (most recent call last):
File "C:\Users\jkoh2169\Python\Tic Tac Toe using tkinter.py", line 36, in 
while btn.cget('text') != "X" and btn2.cget('text') != "X" and btn3.cget('text') != "X":
File "C:\Program Files\Python313\Lib\tkinter\__init__.py", line 1828, in cget
return self.tk.call(self._w, 'cget', '-' + key)
_tkinter.TclError: invalid command name ".!button10"

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post