-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
115 lines (87 loc) · 3.26 KB
/
Copy pathmain.py
File metadata and controls
115 lines (87 loc) · 3.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
from tkinter import *
import random
def nextTurn(row, column):
global player
if buttons[row][column]['text'] == "" and checkWinner() is False :
if player == players[0] :
buttons[row][column]['text'] = players[0]
if checkWinner() is False :
player = players[1]
label.config(text=player+" turn")
elif checkWinner() is True :
label.config(text=player+" wins!")
else:
label.config(text="Tie!")
else:
buttons[row][column]['text'] = players[1]
if checkWinner() is False :
player = players[0]
label.config(text=player+" turn")
elif checkWinner() is True :
label.config(text=player+" wins!")
else:
label.config(text="Tie!")
def checkWinner():
for row in range(3):
if buttons[row][0]['text'] == buttons[row][1]['text'] == buttons[row][2]['text'] != "" :
buttons[row][0].config(bg="green")
buttons[row][1].config(bg="green")
buttons[row][2].config(bg="green")
return True
for column in range(3):
if buttons[0][column]['text'] == buttons[1][column]['text'] == buttons[2][column]['text'] != "" :
buttons[0][column].config(bg="green")
buttons[1][column].config(bg="green")
buttons[2][column].config(bg="green")
return True
if buttons[0][0]['text'] == buttons[1][1]['text'] == buttons[2][2]['text'] != "":
buttons[0][0].config(bg="green")
buttons[1][1].config(bg="green")
buttons[2][2].config(bg="green")
return True
if buttons[0][2]['text'] == buttons[1][1]['text'] == buttons[2][0]['text'] != "":
buttons[0][2].config(bg="green")
buttons[1][1].config(bg="green")
buttons[2][0].config(bg="green")
return True
if emptySpaces() is False:
for row in range(3):
for column in range(3):
buttons[row][column].config(bg="yellow")
return "Tie!"
else:
return False
def emptySpaces():
spaces = 9
for row in range(3):
for column in range(3):
if buttons[row][column]['text'] != "":
spaces -= 1
if spaces == 0:
return False
else:
return True
def newGame():
global player
player = random.choice(players)
label.config(text=player+" turn")
for row in range(3):
for column in range(3):
buttons[row][column].config(text="", bg="#F0F0F0")
window = Tk()
window.title("Tic-Tac-Toe")
players = ["x","o"]
player = random.choice(players)
buttons = [[0,0,0],[0,0,0],[0,0,0]]
label = Label(text= player+" turn", font= ('consolas',40))
label.pack(side="top")
reset_button = Button(text="Restart",font=('consolas',20),command=newGame)
reset_button.pack(side="top")
frame = Frame(window)
frame.pack()
for row in range(3):
for column in range(3):
buttons[row][column] = Button(frame, text="", font=('consolas',40), width=5, height=2,
command= lambda row=row, column=column: nextTurn(row,column))
buttons[row][column].grid(row=row,column=column)
window.mainloop()