-
Notifications
You must be signed in to change notification settings - Fork 0
/
tictactoe.py
116 lines (88 loc) · 2.64 KB
/
tictactoe.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
def display_board(board):
print('\n'*100)
print(board[1]+'|' + board[2] + '|' + board[3])
print(board[4] + '|' + board[5] + '|' + board[6])
print(board[7] + '|' + board[8] + '|' + board[9])
def player_input():
'''
OUTPUT:(Player1,Player2)
'''
marker=''
while (marker!='X') or (marker!='O'):
marker=input('Please choose X or O').upper()
break
if marker=='X':
return ('X','O')
else:
return ('O','X')
def place_marker(board, marker, position):
board[position]=marker
def win_check(board,mark):
#3 Rows, 3 Columns, 2 diagnols
return (board[1] == board[2] == board[3] == mark) or (board[4] == board[5] == board[6] == mark) or (board[7] == board[8] == board[9] == mark) or (board[1] == board[4] == board[7] == mark) or (board[2] == board[5] == board[8] == mark) or (board[3] == board[6] == board[9] == mark) or (board[1] == board[5] == board[9] == mark) or (board[3] == board[5] == board[7] == mark)
import random
def choose_first():
flip = random.randint(0,1)
if flip==0:
return 'Player1'
else:
return 'Player2'
def space_check(board,position):
return board[position]==' '
def full_board_check(board):
for i in range(1,10):
if space_check(board,i):
return False
# IF BOARD IS FULL , WE RETURN TRUE
return True
def player_choice(board):
position=0
while position not in {1,2,3,4,5,6,7,8,9} or not space_check(board,position):
position=int(input('Please choose a number between 1-9'))
return position
def replay():
choice = input('Wanna play again? Say Yes or No')
return choice == 'Yes'
#While Loop to keep the Game Running
print('Hey,Welcome to Tic-Tac-Toe')
while True:
board=[' ']*10
player1_marker,player2_marker=player_input()
turn = choose_first()
print(turn + 'will have the turn first' )
play_game= input('Ready to play? Yes or No')
if play_game=='Yes':
game_on = True
else:
game_on = False
while game_on:
if turn == 'Player1':
display_board(board)
position_check = player_choice(board)
place_marker(board,player1_marker,position_check)
if win_check(board,player1_marker):
display_board(board)
print('Bingo!Player1 has won')
game_on=False
else:
if full_board_check(board):
print('Oh Snap!Its a tie!!')
game_on=False
else:
turn = 'Player2'
if turn == 'Player2':
display_board(board)
position_check = player_choice(board)
place_marker(board,player2_marker,position_check)
if win_check(board,player2_marker):
display_board(board)
print('Bingo!Player2 has won')
game_on=False
else:
if full_board_check(board):
print('Oh Snap!Its a tie!!')
game_on=False
else:
turn = 'Player1'
if not replay():
break