from tkinter import *
r = Tk()
r.title('Tic-Tac-Toe')
r.iconphoto(True,PhotoImage(file='ttt icon.png'))
r.geometry('524x519')
r.resizable(0,0)
Go = 0; Gx = 1; turn = 'X'; win = ''
asd = Label(text='X turn', font=('20px'))
asd.grid(row=0,column=1)
def click00():
global Gx, Go, turn, win
if Gx == 1:
button00.config(text='X',state='disable')
Go = 1
Gx = 0
turn = 'O'
if button00['text'] == 'X' and button01['text'] == 'X' and button02['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=110)
if button00['text'] == 'X' and button10['text'] == 'X' and button20['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=86)
if button00['text'] == 'X' and button11['text'] == 'X' and button22['text'] == 'X':
win = 'X'
elif Go == 1:
button00.config(text='O',state='disable')
Gx = 1
Go = 0
turn = 'X'
if button00['text'] == 'O' and button01['text'] == 'O' and button02['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=110)
if button00['text'] == 'O' and button10['text'] == 'O' and button20['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=86)
if button00['text'] == 'O' and button11['text'] == 'O' and button22['text'] == 'O':
win = 'O'
if turn == 'X':
label = Label(text='X turn', font=('20px'))
label.grid(row=0,column=1)
elif turn == 'O':
label = Label(text='O turn',font=('20px'))
label.grid(row=0,column=1)
if win == 'X':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
if win == 'O':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
def click01():
global Gx, Go, turn,win
if Gx == 1:
button01.config(text='X',state='disable')
Go = 1
Gx = 0
turn = 'O'
if button00['text'] == 'X' and button01['text'] == 'X' and button02['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=110)
if button01['text'] == 'X' and button11['text'] == 'X' and button21['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=261)
elif Go == 1:
button01.config(text='O',state='disable')
Gx = 1
Go = 0
turn = 'X'
if button00['text'] == 'O' and button01['text'] == 'O' and button02['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=110)
if button01['text'] == 'O' and button11['text'] == 'O' and button21['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=261)
if turn == 'X':
label = Label(text='X turn', font=('20px'))
label.grid(row=0,column=1)
elif turn == 'O':
label = Label(text='O turn',font=('20px'))
label.grid(row=0,column=1)
if win == 'X':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
if win == 'O':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
def click02():
global Gx, Go, turn, win
if Gx == 1:
button02.config(text='X',state='disable')
Go = 1
Gx = 0
turn = 'O'
if button00['text'] == 'X' and button01['text'] == 'X' and button02['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=110)
if button02['text'] == 'X' and button12['text'] == 'X' and button22['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=438)
if button02['text'] == 'X' and button11['text'] == 'X' and button20['text'] == 'X':
print('X WIN')
elif Go == 1:
button02.config(text='O',state='disable')
Gx = 1
Go = 0
turn = 'X'
if button00['text'] == 'O' and button01['text'] == 'O' and button02['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=110)
if button02['text'] == 'O' and button12['text'] == 'O' and button22['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=438)
if button02['text'] == 'O' and button11['text'] == 'O' and button20['text'] == 'O':
print('O WIN')
if turn == 'X':
label = Label(text='X turn', font=('20px'))
label.grid(row=0,column=1)
elif turn == 'O':
label = Label(text='O turn',font=('20px'))
label.grid(row=0,column=1)
if win == 'X':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
if win == 'O':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
def click10():
global Gx, Go, turn, win
if Gx == 1:
button10.config(text='X',state='disable')
Go = 1
Gx = 0
turn = 'O'
if button10['text'] == 'X' and button11['text'] == 'X' and button12['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=290)
if button00['text'] == 'X' and button10['text'] == 'X' and button20['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=86)
elif Go == 1:
button10.config(text='O',state='disable')
Gx = 1
Go = 0
turn = 'X'
if button10['text'] == 'O' and button11['text'] == 'O' and button12['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=290)
if button00['text'] == 'O' and button10['text'] == 'O' and button20['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=86)
if turn == 'X':
label = Label(text='X turn', font=('20px'))
label.grid(row=0,column=1)
elif turn == 'O':
label = Label(text='O turn',font=('20px'))
label.grid(row=0,column=1)
if win == 'X':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
if win == 'O':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
def click11():
global Gx, Go, turn, win
if Gx == 1:
button11.config(text='X',state='disable')
Go = 1
Gx = 0
turn = 'O'
if button10['text'] == 'X' and button11['text'] == 'X' and button12['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=290)
if button01['text'] == 'X' and button11['text'] == 'X' and button21['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=261)
if button00['text'] == 'X' and button11['text'] == 'X' and button22['text'] == 'X':
print('X WIN')
if button02['text'] == 'X' and button11['text'] == 'X' and button20['text'] == 'X':
print('X WIN')
elif Go == 1:
button11.config(text='O',state='disable')
Gx = 1
Go = 0
turn = 'X'
if button10['text'] == 'O' and button11['text'] == 'O' and button12['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=290)
if button01['text'] == 'O' and button11['text'] == 'O' and button21['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=261)
if button00['text'] == 'O' and button11['text'] == 'O' and button22['text'] == 'O':
print('O WIN')
if button02['text'] == 'O' and button11['text'] == 'O' and button20['text'] == 'O':
print('O WIN')
if turn == 'X':
label = Label(text='X turn', font=('20px'))
label.grid(row=0,column=1)
elif turn == 'O':
label = Label(text='O turn',font=('20px'))
label.grid(row=0,column=1)
if win == 'X':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
if win == 'O':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
def click12():
global Gx, Go, turn, win
if Gx == 1:
button12.config(text='X',state='disable')
Go = 1
Gx = 0
turn = 'O'
if button10['text'] == 'X' and button11['text'] == 'X' and button12['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=290)
if button02['text'] == 'X' and button12['text'] == 'X' and button22['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=438)
elif Go == 1:
button12.config(text='O',state='disable')
Gx = 1
Go = 0
turn = 'X'
if button10['text'] == 'O' and button11['text'] == 'O' and button12['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=290)
if button02['text'] == 'O' and button12['text'] == 'O' and button22['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=438)
if turn == 'X':
label = Label(text='X turn', font=('20px'))
label.grid(row=0,column=1)
elif turn == 'O':
label = Label(text='O turn',font=('20px'))
label.grid(row=0,column=1)
if win == 'X':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
if win == 'O':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
def click20():
global Gx, Go, turn, win
if Gx == 1:
button20.config(text='X',state='disable')
Go = 1
Gx = 0
turn = 'O'
if button20['text'] == 'X' and button21['text'] == 'X' and button22['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=471)
if button00['text'] == 'X' and button10['text'] == 'X' and button20['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=86)
if button02['text'] == 'X' and button11['text'] == 'X' and button20['text'] == 'X':
print('X WIN')
elif Go == 1:
button20.config(text='O',state='disable')
Gx = 1
Go = 0
turn = 'X'
if button20['text'] == 'O' and button21['text'] == 'O' and button22['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=471)
if button00['text'] == 'O' and button10['text'] == 'O' and button20['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=86)
if button02['text'] == 'O' and button11['text'] == 'O' and button20['text'] == 'O':
print('O WIN')
if turn == 'X':
label = Label(text='X turn', font=('20px'))
label.grid(row=0,column=1)
elif turn == 'O':
label = Label(text='O turn',font=('20px'))
label.grid(row=0,column=1)
if win == 'X':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
if win == 'O':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
def click21():
global Gx, Go, turn, win
if Gx == 1:
button21.config(text='X',state='disable')
Go = 1
Gx = 0
turn = 'O'
if button20['text'] == 'X' and button21['text'] == 'X' and button22['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=471)
if button01['text'] == 'X' and button11['text'] == 'X' and button21['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=261)
elif Go == 1:
button21.config(text='O',state='disable')
Gx = 1
Go = 0
turn = 'X'
if button20['text'] == 'O' and button21['text'] == 'O' and button22['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=471)
if button01['text'] == 'O' and button11['text'] == 'O' and button21['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=261)
if turn == 'X':
label = Label(text='X turn', font=('20px'))
label.grid(row=0,column=1)
elif turn == 'O':
label = Label(text='O turn',font=('20px'))
label.grid(row=0,column=1)
if win == 'X':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
if win == 'O':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
def click22():
global Gx, Go, turn, win
if Gx == 1:
button22.config(text='X', state='disable')
Go = 1
Gx = 0
turn = 'O'
if button20['text'] == 'X' and button21['text'] == 'X' and button22['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=471)
if button02['text'] == 'X' and button12['text'] == 'X' and button22['text'] == 'X':
win = 'X'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=438)
if button00['text'] == 'X' and button11['text'] == 'X' and button22['text'] == 'X':
print('X WIN')
elif Go == 1:
button22.config(text='O',state='disable')
Gx = 1
Go = 0
turn = 'X'
if button20['text'] == 'O' and button21['text'] == 'O' and button22['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='гпоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(x=88,y=471)
if button02['text'] == 'O' and button12['text'] == 'O' and button22['text'] == 'O':
win = 'O'
gpob = PhotoImage(file='впоб.png')
gpobL = Label(border=0, image=gpob,bg='red')
gpobL.place(y=117,x=438)
if button00['text'] == 'O' and button11['text'] == 'O' and button22['text'] == 'O':
print('O WIN')
if turn == 'X':
label = Label(text='X turn', font=('20px'))
label.grid(row=0,column=1)
elif turn == 'O':
label = Label(text='O turn',font=('20px'))
label.grid(row=0,column=1)
if win == 'X':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
if win == 'O':
button00.config(state='disable')
button01.config(state='disable')
button02.config(state='disable')
button10.config(state='disable')
button11.config(state='disable')
button12.config(state='disable')
button20.config(state='disable')
button21.config(state='disable')
button22.config(state='disable')
button00 = Button(bd=0,activebackground='#00eeff',width=10,height=5,bg='#00eeff', command=click00, font=('Arial', 20, 'bold'))
button01 = Button(bd=0,activebackground='#00eeff',width=10,height=5,bg='#00eeff', command=click01, font=('Arial', 20, 'bold'))
button02 = Button(bd=0,activebackground='#00eeff',width=10,height=5,bg='#00eeff', command=click02, font=('Arial', 20, 'bold'))
button10 = Button(bd=0,activebackground='#00eeff',width=10,height=5,bg='#00eeff', command=click10, font=('Arial', 20, 'bold'))
button11 = Button(bd=0,activebackground='#00eeff',width=10,height=5,bg='#00eeff', command=click11, font=('Arial', 20, 'bold'))
button12 = Button(bd=0,activebackground='#00eeff',width=10,height=5,bg='#00eeff', command=click12, font=('Arial', 20, 'bold'))
button20 = Button(bd=0,activebackground='#00eeff',width=10,height=5,bg='#00eeff', command=click20, font=('Arial', 20, 'bold'))
button21 = Button(bd=0,activebackground='#00eeff',width=10,height=5,bg='#00eeff', command=click21, font=('Arial', 20, 'bold'))
button22 = Button(bd=0,activebackground='#00eeff',width=10,height=5,bg='#00eeff', command=click22, font=('Arial', 20, 'bold'))
button00.grid(row=1,column=0)
button01.grid(row=1,column=1)
button02.grid(row=1,column=2)
button10.grid(row=2,column=0)
button11.grid(row=2,column=1)
button12.grid(row=2,column=2)
button20.grid(row=3,column=0)
button21.grid(row=3,column=1)
button22.grid(row=3,column=2)
line0 = PhotoImage(file='верт.png')
line0L = Label(image=line0,border=0)
line0L.place(x=173,y=30)
line1 = PhotoImage(file='верт.png')
line1L = Label(image=line1,border=0)
line1L.place(x=353,y=30)
line2 = PhotoImage(file='гориз.png')
line2L = Label(image=line2,border=0)
line2L.place(x=-66,y=180)
line3 = PhotoImage(file='гориз.png')
line3L = Label(image=line3,border=0)
line3L.place(x=-66,y=360)
r.mainloop()