-
Notifications
You must be signed in to change notification settings - Fork 0
/
stage_three.py
84 lines (69 loc) · 2.34 KB
/
stage_three.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
answer = input("Enter cells: ")
# answer = "XXXOO__O_" # X wins
# answer = "XOXOXOXXO" #X wins
# answer = "XOOOXOXXO" # O wins
# answer = "XOXOOXXXO" # draw
# answer = "XO_XO_XOX" # impossible
# answer = "_O_X__X_X" # impossible
# answer = "_OOOO_X_X" # impossible
# answer = "XO_OOX_X_" # game not finished
print("---------")
print(f"| {answer[0]} {answer[1]} {answer[2]} |")
print(f"| {answer[3]} {answer[4]} {answer[5]} |")
print(f"| {answer[6]} {answer[7]} {answer[8]} |")
print("---------")
def is_X_winner():
if answer[0] == 'X' and answer[1] == 'X' and answer[2] == 'X':
return True
if answer[6] == 'X' and answer[7] == 'X' and answer[8] == 'X':
return True
if answer[0] == 'X' and answer[3] == 'X' and answer[6] == 'X':
return True
if answer[2] == 'X' and answer[5] == 'X' and answer[8] == 'X':
return True
if answer[2] == 'X' and answer[4] == 'X' and answer[6] == 'X':
return True
if answer[1] == 'X' and answer[4] == 'X' and answer[7] == 'X':
return True
def is_O_winner():
if answer[0] == 'O' and answer[1] == 'O' and answer[2] == 'O':
return True
if answer[6] == 'O' and answer[7] == 'O' and answer[8] == 'O':
return True
if answer[0] == 'O' and answer[3] == 'O' and answer[6] == 'O':
return True
if answer[2] == 'O' and answer[5] == 'O' and answer[8] == 'O':
return True
if answer[2] == 'O' and answer[4] == 'O' and answer[6] == 'O':
return True
if answer[1] == 'O' and answer[4] == 'O' and answer[7] == 'O':
return True
def empty_cell():
for element in answer:
if element == '_':
return True
return False
def impossible():
X_count = 0
for item in answer:
if item == 'X':
X_count = X_count + 1
O_count = 0
for item in answer:
if item == 'O':
O_count = O_count + 1
if is_X_winner() and is_O_winner() or abs(X_count - O_count) >= 2:
return True
if impossible():
print("Impossible")
else:
if is_X_winner():
print("X wins")
if is_O_winner():
print("O wins")
# if empty_cell():
# print('empty cells')
if not is_X_winner() and not is_O_winner() and not empty_cell():
print("Draw")
if not is_X_winner() and not is_O_winner() and empty_cell():
print("Game not finished")