Code: Alles auswählen
import tkinter.messagebox
from tkinter import*
# Zuerst erstelle ich eine Benutzeroberfläche und definiere einige Dinge.
root =Tk()
root.geometry("1350x750+0+0")
root.title("Tic Tac Toe")
root.configure(background ='Lightskyblue')
Tops = Frame(root, bg ='Lightskyblue', pady =2, width =1350, height=100, relief =RIDGE)
Tops.grid(row=0, column=0)
lblTitle = Label(Tops, font=('arial',50,'bold'), text="Tic Tac Toe lol", bd=21, bg='Lightskyblue',fg='Cornsilk',justify=CENTER)
lblTitle.grid(row=0,column=0)
MainFrame = Frame(root, bg ='Lightcyan', pady =2, width =1350, height=600, relief =RIDGE)
MainFrame.grid(row=1, column=0)
LeftFrame = Frame(MainFrame ,bd=10, width =750, height=500, pady=2,padx=10,bg="Lightskyblue" , relief=RIDGE)
LeftFrame.pack(side=LEFT)
RightFrame = Frame(MainFrame ,bd=10, width=560, height=500, padx=10,pady=2, bg="Lightskyblue" , relief=RIDGE)
RightFrame.pack(side=RIGHT)
RightFrame1 = Frame(RightFrame ,bd=10, width =560, height=200, padx=10,pady=2, bg="Lightskyblue" , relief=RIDGE)
RightFrame1.grid(row=0, column=0)
RightFrame2 = Frame(RightFrame ,bd=10, width =560, height=200, padx=10,pady=2, bg="Lightskyblue" , relief=RIDGE)
RightFrame2.grid(row=1,column=0)
SpielerX=IntVar()
SpielerO=IntVar()
SpielerX.set(0)
SpielerO.set(0)
buttons = StringVar()
click = True
def checker(buttons):
global click
if buttons["text"] == " " and click == True:
buttons["text"] = "X"
click = False
scorekeeper()
elif buttons["text"] == " " and click == False:
buttons["text"] = "O"
click = True
scorekeeper()
#Hier kümmere ich mich um den Spielmechanismus und die Logik.
def scorekeeper():
if(button1['text']=="X" and button2['text']=="X" and button3['text']=="X"):
button1.configure(background ="lavender")
button2.configure(background ="lavender")
button3.configure(background ="lavender")
n = float(SpielerX.get())
score = (n+1)
SpielerX.set(score)
tkinter.messagebox.showinfo("Spieler 1 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button4['text']=="X" and button5['text']=="X" and button6['text']=="X"):
button4.configure(background ="lavender")
button5.configure(background ="lavender")
button6.configure(background ="lavender")
n = float(SpielerX.get())
score = (n+1)
SpielerX.set(score)
tkinter.messagebox.showinfo("Spieler 1 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button7['text']=="X" and button8['text']=="X" and button9['text']=="X"):
button7.configure(background ="lavender")
button8.configure(background ="lavender")
button9.configure(background ="lavender")
n = float(SpielerX.get())
score = (n+1)
SpielerX.set(score)
tkinter.messagebox.showinfo("Spieler 1 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button1['text']=="X" and button4['text']=="X" and button7['text']=="X"):
button1.configure(background ="lavender")
button4.configure(background ="lavender")
button7.configure(background ="lavender")
n = float(SpielerX.get())
score = (n+1)
SpielerX.set(score)
tkinter.messagebox.showinfo("Spieler 1 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button5['text']=="X" and button2['text']=="X" and button8['text']=="X"):
button5.configure(background ="lavender")
button2.configure(background ="lavender")
button8.configure(background ="lavender")
n = float(SpielerX.get())
score = (n+1)
SpielerX.set(score)
tkinter.messagebox.showinfo("Spieler 1 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button6['text']=="X" and button9['text']=="X" and button3['text']=="X"):
button6.configure(background ="lavender")
button9.configure(background ="lavender")
button3.configure(background ="lavender")
n = float(SpielerX.get())
score = (n+1)
SpielerX.set(score)
tkinter.messagebox.showinfo("Spieler 1 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button1['text']=="X" and button5['text']=="X" and button9['text']=="X"):
button1.configure(background ="lavender")
button5.configure(background ="lavender")
button9.configure(background ="lavender")
n = float(SpielerX.get())
score = (n+1)
SpielerX.set(score)
tkinter.messagebox.showinfo("Spieler 1 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button3['text']=="X" and button5['text']=="X" and button7['text']=="X"):
button3.configure(background ="lavender")
button5.configure(background ="lavender")
button7.configure(background ="lavender")
n = float(SpielerX.get())
score = (n+1)
SpielerX.set(score)
tkinter.messagebox.showinfo("Spieler 1 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button1['text']=="O" and button2['text']=="O" and button3['text']=="O"):
button1.configure(background ="lavender")
button2.configure(background ="lavender")
button3.configure(background ="lavender")
n = float(SpielerO.get())
score = (n+1)
SpielerO.set(score)
tkinter.messagebox.showinfo("Spieler 2 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button4['text']=="O" and button5['text']=="O" and button6['text']=="O"):
button4.configure(background ="lavender")
button5.configure(background ="lavender")
button6.configure(background ="lavender")
n = float(SpielerO.get())
score = (n+1)
SpielerO.set(score)
tkinter.messagebox.showinfo("Spieler 2 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button7['text']=="O" and button8['text']=="O" and button9['text']=="O"):
button7.configure(background ="lavender")
button8.configure(background ="lavender")
button9.configure(background ="lavender")
n = float(SpielerO.get())
score = (n+1)
SpielerO.set(score)
tkinter.messagebox.showinfo("Spieler 2 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button1['text']=="O" and button4['text']=="O" and button7['text']=="O"):
button1.configure(background ="lavender")
button4.configure(background ="lavender")
button7.configure(background ="lavender")
n = float(SpielerO.get())
score = (n+1)
SpielerO.set(score)
tkinter.messagebox.showinfo("Spieler 2 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button5['text']=="O" and button2['text']=="O" and button8['text']=="O"):
button5.configure(background ="lavender")
button2.configure(background ="lavender")
button8.configure(background ="lavender")
n = float(SpielerO.get())
score = (n+1)
SpielerO.set(score)
tkinter.messagebox.showinfo("Spieler 2 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button6['text']=="O" and button9['text']=="O" and button3['text']=="O"):
button6.configure(background ="lavender")
button9.configure(background ="lavender")
button3.configure(background ="lavender")
n = float(SpielerO.get())
score = (n+1)
SpielerO.set(score)
tkinter.messagebox.showinfo("Spieler 2 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button1['text']=="O" and button5['text']=="O" and button9['text']=="O"):
button1.configure(background ="lavender")
button5.configure(background ="lavender")
button9.configure(background ="lavender")
n = float(SpielerO.get())
score = (n+1)
SpielerO.set(score)
tkinter.messagebox.showinfo("Spieler 2 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
if(button3['text']=="O" and button5['text']=="O" and button7['text']=="O"):
button3.configure(background ="lavender")
button5.configure(background ="lavender")
button7.configure(background ="lavender")
n = float(SpielerO.get())
score = (n+1)
SpielerO.set(score)
tkinter.messagebox.showinfo("Spieler 2 gewinnt")
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
def reset():
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
def neuesspiel():
button1['text']=" "
button2['text']=" "
button3['text']=" "
button4['text']=" "
button5['text']=" "
button6['text']=" "
button7['text']=" "
button8['text']=" "
button9['text']=" "
button1.configure(background ="mintcream")
button2.configure(background ="mintcream")
button3.configure(background ="mintcream")
button4.configure(background ="mintcream")
button5.configure(background ="mintcream")
button6.configure(background ="mintcream")
button7.configure(background ="mintcream")
button8.configure(background ="mintcream")
button9.configure(background ="mintcream")
SpielerX.set(0)
SpielerO.set(0)
#Hier füge ich einen Zähler für die gewonnenen Spiele hinzu
lblSpielerX = Label(RightFrame1, font=('arial',40,'bold'), text="Spieler 1:",padx=2,pady=2, bg='Lightskyblue')
lblSpielerX.grid(row=0,column=0,sticky=W)
txtPlayerX=Entry(RightFrame1,font=('arial',40,'bold'),bd=2,fg="black",textvariable= SpielerX, width=14,
justify=LEFT).grid(row=0,column=1)
lblSpielerO = Label(RightFrame1, font=('arial',40,'bold'), text="Spieler 2:",padx=2,pady=2, bg='Lightskyblue')
lblSpielerO.grid(row=1,column=0,sticky=W)
txtPlayerX=Entry(RightFrame1,font=('arial',40,'bold'),bd=2,fg="black",textvariable= SpielerO, width=14,
justify=LEFT).grid(row=1,column=1)
#Danach füge ich Buttons hinzu, welche dem Spieler verschiedene möglichkeiten geben
zufall=Button(RightFrame2, text="Zufällig", font=('arial 26 bold'),height = 3, width=10, bg='mintcream')
zufall.grid(row=1, column=2)
reset=Button(RightFrame2, text="Reset", font=('arial 26 bold'), height = 3, width=10, bg='mintcream', command = reset)
reset.grid(row=1, column=0)
neuesspiel=Button(RightFrame2, text="Neues Spiel", font=('arial 26 bold'), height = 3, width=10, bg='mintcream', command = neuesspiel)
neuesspiel.grid(row=1, column=1)
#Hier erstelle ich das Spielfeld.
button1 = Button(LeftFrame, text=" ", font=('arial 26 bold'), height = 3, width=8, bg='mintcream', command=lambda:checker(button1))
button1.grid(row=1, column=0, sticky = S+N+E+W)
button2 = Button(LeftFrame, text=" ", font=('arial 26 bold'), height = 3, width=8, bg='mintcream', command=lambda:checker(button2))
button2.grid(row=1, column=1, sticky = S+N+E+W)
button3 = Button(LeftFrame, text=" ", font=('arial 26 bold'), height = 3, width=8, bg='mintcream', command=lambda:checker(button3))
button3.grid(row=1, column=2, sticky = S+N+E+W)
button4 = Button(LeftFrame, text=" ", font=('arial 26 bold'), height = 3, width=8, bg='mintcream', command=lambda:checker(button4))
button4.grid(row=2, column=0, sticky = S+N+E+W)
button5 = Button(LeftFrame, text=" ", font=('arial 26 bold'), height = 3, width=8, bg='mintcream', command=lambda:checker(button5))
button5.grid(row=2, column=1, sticky = S+N+E+W)
button6 = Button(LeftFrame, text=" ", font=('arial 26 bold'), height = 3, width=8, bg='mintcream', command=lambda:checker(button6))
button6.grid(row=2, column=2, sticky = S+N+E+W)
button7 = Button(LeftFrame, text=" ", font=('arial 26 bold'), height = 3, width=8, bg='mintcream', command=lambda:checker(button7))
button7.grid(row=3, column=0, sticky = S+N+E+W)
button8 = Button(LeftFrame, text=" ", font=('arial 26 bold'), height = 3, width=8, bg='mintcream', command=lambda:checker(button8))
button8.grid(row=3, column=1, sticky = S+N+E+W)
button9 = Button(LeftFrame, text=" ", font=('arial 26 bold'), height = 3, width=8, bg='mintcream', command=lambda:checker(button9))
button9.grid(row=3, column=2, sticky = S+N+E+W)
root.mainloop()