Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- class Grafic():
- def __init__(self):
- self.player = "X"
- self.button_number = 0
- self.list_value =[ ["", "", ""], ["", "", ""], ["", "", ""] ]
- self.name = []
- self.root = Tk()
- self.ui_frame = Frame(self.root, width=100*3,height=100*3)
- self.ui_frame.grid(row=0, column=0, padx=5, pady=5)
- self.root.title("Крестики нолики")
- ii = 0
- for i in range(3):
- for j in range(3):
- b = Button(self.ui_frame, text="",font = "Arial 20",
- command=lambda ii=ii, id=i, jd=j : self.button(ii, id, jd))
- b.place(x=i*100, y=j*100, width=100, height=100)
- self.name.append(b)
- ii+=1
- self.root.mainloop()
- def button(self, ii, i, j):
- #if self.name[ii]["text"] != "X" and self.name[ii]["text"] != "O":
- self.name[ii]["text"] = self.player
- self.name[ii]["state"] = "disabled"
- self.list_value[i][j] = self.player
- if self.examination() == 1:
- self.message(True)
- elif self.examination() == 2:
- self.message(False)
- self.change_player()
- def change_player(self):
- if self.player == 'O':
- self.player = 'X'
- else:
- self.player = 'O'
- def examination(self):
- if self.list_value[0][0] == self.list_value[1][1] and self.list_value[1][1] == self.list_value[2][2] and self.list_value[1][1] != "" :
- return 1
- elif self.list_value[0][2] == self.list_value[1][1] and self.list_value[1][1] == self.list_value[2][0] and self.list_value[1][1] != "":
- return 1
- elif self.list_value[0][0] == self.list_value[0][1] and self.list_value[0][1] == self.list_value[0][2] and self.list_value[0][2] != "":
- return 1
- elif self.list_value[1][0] == self.list_value[1][1] and self.list_value[1][1] == self.list_value[1][2] and self.list_value[1][2] != "":
- return 1
- elif self.list_value[2][0] == self.list_value[2][1] and self.list_value[2][1] == self.list_value[2][2] and self.list_value[2][2] != "":
- return 1
- elif self.list_value[0][0] == self.list_value[1][0] and self.list_value[1][0] == self.list_value[2][0] and self.list_value[2][0] != "":
- return 1
- elif self.list_value[0][1] == self.list_value[1][1] and self.list_value[1][1] == self.list_value[2][1] and self.list_value[2][1] != "":
- return 1
- elif self.list_value[0][2] == self.list_value[1][2] and self.list_value[1][2] == self.list_value[2][2] and self.list_value[2][2] != "":
- return 1
- else:
- z = 0
- for i in range(3):
- for j in range(3):
- if self.list_value[i][j] != "":
- z += 1
- if z == 9 :
- return 2
- else:
- return 0
- def restart(self):
- for i in range(9):
- self.name[i]["state"] = "active"
- for i in self.name:
- i["text"] = ""
- self.list_value =[ ["", "", ""], ["", "", ""], ["", "", ""] ]
- try:
- self.root_2.destroy()
- except:
- pass
- try:
- self.but0.destroy()
- except:
- pass
- def message(self, bool):
- for i in range(9):
- self.name[i]["state"] = "disabled"
- if bool:
- text_ = "Победил "+str(self.player)
- else:
- text_ = "Ничья"
- self.root_2 = Tk()
- lab0 = Label(self.root_2, text = text_+"\n"+"_"*15, font = "Arial 20", fg="red")
- lab0.grid(row=0, column=1, padx=5, pady=5, ipadx=40, ipady=20)
- for i in range(3):
- for j in range(3):
- lab = Label(self.root_2, text = self.list_value[i][j], font = "Arial 20")
- lab.grid(row=j+1, column=i, padx=5, pady=5, ipadx=40, ipady=20)
- self.but0 = Button(self.root, text="Занаво",font = "Arial 20",bg="yellow",
- command=self.restart)
- self.but0.grid(row=2, column=0, padx=5, pady=5, ipadx=40, ipady=20)
- but1 = Button(self.root_2, text="Занаво",font = "Arial 20",bg="yellow",
- command=self.restart)
- but1.grid(row=4, column=1, padx=5, pady=5, ipadx=40, ipady=20)
- #___________________________________________________________________________
- g = Grafic()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement