-
Notifications
You must be signed in to change notification settings - Fork 0
/
tic_tac_toe.py
118 lines (93 loc) · 2.83 KB
/
tic_tac_toe.py
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
116
117
118
board=["-","-","-","-","-","-","-","-","-"] #done
game_not_over = True
player="X"
winner=None
y_or_n='y'
def show_board():#done
print(board[0] + " | " + board[1] + " | " + board[2] )
print(board[3] + " | " + board[4] + " | " + board[5] )
print(board[6] + " | " + board[7] + " | " + board[8] )
def turn_handler(symbol): #done
global player
print(player+"'s Turn,")
position = input("Enter the position (1-9) : ")
if(position not in ['0','1','2','3','4','5','6','7','8','9'] ):
print("Try a valid Position")
turn_handler(symbol)
else:
position= int(position)-1
if board[position]=='-':
board[position]=symbol
else:
print("Position already Occupied!TRY AGAIN")
turn_handler(symbol)
def play_game(): #done
global winner
show_board()
while game_not_over:
turn_handler(player)
show_board()
is_game_over()
flip_player()
if (winner=='O' or winner =='X'):
print(winner + " is the winner")
elif winner == None and is_tie() :
print("Tie")
def is_row_won(): #done
global winner
global game_not_over
row1=board[0]==board[1]==board[2]!="-"
row2=board[3]==board[4]==board[5]!="-"
row3=board[6]==board[7]==board[8]!="-"
if (row1 or row2 or row3):
game_not_over=False
if(row1):
winner=board[0]
elif(row2) :
winner=board[3]
elif(row3):
winner=board[6]
def is_col_won(): #done
global winner
global game_not_over
col1=board[0]==board[3]==board[6]!="-"
col2=board[1]==board[4]==board[7]!="-"
col3=board[2]==board[5]==board[8]!="-"
if (col1 or col2 or col3):
game_not_over=False
if(col1):
winner=board[0]
elif(col2) :
winner=board[1]
elif(col3):
winner=board[2]
def is_diag_won(): #done
global game_not_over
global winner
diag1=board[0]==board[4]==board[8]!="-"
diag2=board[2]==board[4]==board[6]!="-"
if (diag1 or diag2):
game_not_over=False
if(diag1 or diag2):
winner=board[4]
def is_won(): #done
row_won =is_row_won()
col_won = is_col_won()
diag_won = is_diag_won()
if(row_won or col_won or diag_won):
return True
def is_tie(): #done
complete=False
for i in board:
if(i=='-'): return False
if (is_won()!=True):
return True
def flip_player(): #done
global player
if(player=='X'): player = 'O'
else: player='X'
def is_game_over(): #done
is_won()
is_tie()
#START PLAYING!!!
play_game()