Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- from tkinter import messagebox
- class Tictactoe:
- def __init__(self):
- self.window = Tk()
- self.window.title("Welcome to The Gaming world Tic-Tac-Toe ")
- self.window.geometry("400x300")
- lbl = Label(self.window, text="Tic-tac-toe Game", font=('Helvetica', '15'))
- lbl.grid(row=0, column=0)
- lbl = Label(self.window, text="Player 1: X", font=('Helvetica', '10'))
- lbl.grid(row=1, column=0)
- lbl = Label(self.window, text="Player 2: O", font=('Helvetica', '10'))
- lbl.grid(row=2, column=0)
- self.btn1 = Button(self.window, text=" ", bg="yellow", fg="Black", width=3, height=1, font=('Helvetica', '20'), command=self.clicked1)
- self.btn1.grid(column=1, row=1)
- self.btn2 = Button(self.window, text=" ", bg="yellow", fg="Black", width=3, height=1, font=('Helvetica', '20'), command=self.clicked2)
- self.btn2.grid(column=2, row=1)
- self.btn3 = Button(self.window, text=" ", bg="yellow", fg="Black", width=3, height=1, font=('Helvetica', '20'), command=self.clicked3)
- self.btn3.grid(column=3, row=1)
- self.btn4 = Button(self.window, text=" ", bg="yellow", fg="Black", width=3, height=1, font=('Helvetica', '20'), command=self.clicked4)
- self.btn4.grid(column=1, row=2)
- self.btn5 = Button(self.window, text=" ", bg="yellow", fg="Black", width=3, height=1, font=('Helvetica', '20'), command=self.clicked5)
- self.btn5.grid(column=2, row=2)
- self.btn6 = Button(self.window, text=" ", bg="yellow", fg="Black", width=3, height=1, font=('Helvetica', '20'), command=self.clicked6)
- self.btn6.grid(column=3, row=2)
- self.btn7 = Button(self.window, text=" ", bg="yellow", fg="Black", width=3, height=1, font=('Helvetica', '20'), command=self.clicked7)
- self.btn7.grid(column=1, row=3)
- self.btn8 = Button(self.window, text=" ", bg="yellow", fg="Black", width=3, height=1, font=('Helvetica', '20'), command=self.clicked8)
- self.btn8.grid(column=2, row=3)
- self.btn9 = Button(self.window, text=" ", bg="yellow", fg="Black", width=3, height=1, font=('Helvetica', '20'), command=self.clicked9)
- self.btn9.grid(column=3, row=3)
- self.turn = 1# For first person turn.
- self.flag = 1
- self.window.mainloop()
- def clicked1(self):
- if self.btn1["text"] == " ": #For getting the text of a button
- if self.turn == 1:
- self.turn = 2
- self.btn1["text"] = "X"
- elif self.turn == 2:
- self.turn = 1
- self.btn1["text"] = "O"
- self.check()
- def clicked2(self):
- if self.btn2["text"] == " ":
- if self.turn == 1:
- self.turn = 2
- self.btn2["text"] = "X"
- elif self.turn == 2:
- self.turn = 1
- self.btn2["text"] = "O"
- self.check()
- def clicked3(self):
- if self.btn3["text"] == " ":
- if self.turn == 1:
- self.turn = 2
- self.btn3["text"] = "X"
- elif self.turn == 2:
- self.turn = 1
- self.btn3["text"] = "O"
- self.check()
- def clicked4(self):
- if self.btn4["text"] == " ":
- if self.turn == 1:
- self.turn = 2
- self.btn4["text"] = "X"
- elif self.turn == 2:
- self.turn = 1
- self.btn4["text"] = "O"
- self.check()
- def clicked5(self):
- if self.btn5["text"] == " ":
- if self.turn == 1:
- self.turn = 2
- self.btn5["text"] = "X"
- elif self.turn == 2:
- self.turn = 1
- self.btn5["text"] = "O"
- self.check()
- def clicked6(self):
- if self.btn6["text"] == " ":
- if self.turn == 1:
- self.turn = 2
- self.btn6["text"] = "X"
- elif self.turn == 2:
- self.turn = 1
- self.btn6["text"] = "O"
- self.check()
- def clicked7(self):
- if self.btn7["text"] == " ":
- if self.turn == 1:
- self.turn = 2
- self.btn7["text"] = "X"
- elif self.turn == 2:
- self.turn = 1
- self.btn7["text"] = "O"
- self.check()
- def clicked8(self):
- if self.btn8["text"] == " ":
- if self.turn == 1:
- self.turn = 2
- self.btn8["text"] = "X"
- elif self.turn == 2:
- self.turn = 1
- self.btn8["text"] = "O"
- self.check()
- def clicked9(self):
- if self.btn9["text"] == " ":
- if self.turn == 1:
- self.turn = 2
- self.btn9["text"] = "X"
- elif self.turn == 2:
- self.turn = 1
- self.btn9["text"] = "O"
- self.check()
- def check(self):
- b1 = self.btn1["text"]
- b2 = self.btn2["text"]
- b3 = self.btn3["text"]
- b4 = self.btn4["text"]
- b5 = self.btn5["text"]
- b6 = self.btn6["text"]
- b7 = self.btn7["text"]
- b8 = self.btn8["text"]
- b9 = self.btn9["text"]
- self.flag = self.flag + 1
- if b1 == b2 and b1 == b3 and b1 == "O" or b1 == b2 and b1 == b3 and b1 == "X":
- self.win(self.btn1["text"])
- if b4 == b5 and b4 == b6 and b4 == "O" or b4 == b5 and b4 == b6 and b4 == "X":
- self.win(self.btn4["text"])
- if b7 == b8 and b7 == b9 and b7 == "O" or b7 == b8 and b7 == b9 and b7 == "X":
- self.win(self.btn7["text"])
- if b1 == b4 and b1 == b7 and b1 == "O" or b1 == b4 and b1 == b7 and b1 == "X":
- self.win(self.btn1["text"])
- if b2 == b5 and b2 == b8 and b2 == "O" or b2 == b5 and b2 == b8 and b2 == "X":
- self.win(self.btn2["text"])
- if b3 == b6 and b3 == b9 and b3 == "O" or b3 == b6 and b3 == b9 and b3 == "X":
- self.win(self.btn3["text"])
- if b1 == b5 and b1 == b9 and b1 == "O" or b1 == b5 and b1 == b9 and b1 == "X":
- self.win(self.btn1["text"])
- if b7 == b5 and b7 == b3 and b7 == "O" or b7 == b5 and b7 == b3 and b7 == "X":
- self.win(self.btn7["text"])
- if self.flag == 10:
- messagebox.showinfo("Tie", "Match Tied!!! Try again :)")
- self.window.destroy()
- def win(self, player):
- ans = "Game complete " + player + " wins ";
- messagebox.showinfo("Congratulations", ans)
- self.window.destroy() # is used to close the program
- test = Tictactoe()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement