Skip to content

Commit 9fc4756

Browse files
committed
tictactoe milestone project 1 udemy
1 parent bc257c4 commit 9fc4756

File tree

1 file changed

+204
-0
lines changed

1 file changed

+204
-0
lines changed

tictactoe_milestoneproject.py

+204
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
#!/usr/bin/env python
2+
# coding: utf-8
3+
4+
# In[23]:
5+
6+
7+
from IPython.display import clear_output
8+
9+
def display_board(board):
10+
clear_output()
11+
print(board[7]+'|'+board[8]+'|'+board[9])
12+
print('-----')
13+
print(board[4]+'|'+board[5]+'|'+board[6])
14+
print('-----')
15+
print(board[1]+'|'+board[2]+'|'+board[3])
16+
print('-----')
17+
pass
18+
19+
20+
# In[24]:
21+
22+
23+
test_board = ['#','X','O','X','O','X','O','A','O','X']
24+
display_board(test_board)
25+
26+
27+
# In[25]:
28+
29+
30+
def player_input():
31+
marker=''
32+
while marker!='X' and marker!= 'O':
33+
marker=input('Player 1 please enter X or O')
34+
if marker=='X':
35+
return('X','O')
36+
else:
37+
return ('O','X')
38+
39+
40+
#OUTPUT IN FORM OF tuple (Player 1 marker, Player 2 marker)
41+
42+
43+
# In[26]:
44+
45+
46+
def place_marker(board, marker, position):
47+
board[position]= marker
48+
49+
50+
# In[27]:
51+
52+
53+
place_marker(test_board,'$',8)
54+
display_board(test_board)
55+
56+
57+
# In[28]:
58+
59+
60+
def win_check(board,mark):
61+
62+
return ((board[7] == mark and board[8] == mark and board[9] == mark) or # across the top
63+
(board[4] == mark and board[5] == mark and board[6] == mark) or # across the middle
64+
(board[1] == mark and board[2] == mark and board[3] == mark) or # across the bottom
65+
(board[7] == mark and board[4] == mark and board[1] == mark) or # down the middle
66+
(board[8] == mark and board[5] == mark and board[2] == mark) or # down the middle
67+
(board[9] == mark and board[6] == mark and board[3] == mark) or # down the right side
68+
(board[7] == mark and board[5] == mark and board[3] == mark) or # diagonal
69+
(board[9] == mark and board[5] == mark and board[1] == mark)) # diagonal
70+
71+
72+
# In[29]:
73+
74+
75+
display_board(board)
76+
win_check(board,'X')
77+
78+
79+
# In[30]:
80+
81+
82+
import random
83+
84+
def choose_first():
85+
x=random.randint(1,10)
86+
if x%2==0:
87+
print('Player 1 goes')
88+
else:
89+
print('Player 2 goes')
90+
91+
92+
# In[31]:
93+
94+
95+
choose_first()
96+
97+
98+
# In[37]:
99+
100+
101+
def space_check(board, position):
102+
if board[position].isspace():
103+
return True
104+
else:
105+
return False
106+
107+
108+
109+
# In[38]:
110+
111+
112+
def full_board_check(board):
113+
for i in range(1,10):
114+
if space_check(board, i) is True:
115+
return False
116+
break
117+
return True #BOARD is full
118+
119+
120+
121+
# In[39]:
122+
123+
124+
def player_choice(board):
125+
choice=0
126+
while choice not in range(1,10) or space_check(board,choice) is False :
127+
choice=int(input('Player please enter your position choice from 1-9'))
128+
return choice
129+
130+
131+
# In[40]:
132+
133+
134+
def replay():
135+
136+
return input('Do you want to play again? Enter Yes or No: ').lower().startswith('y')
137+
138+
139+
# In[42]:
140+
141+
142+
print('Welcome to Tic Tac Toe')
143+
144+
while True:
145+
146+
board= [' ']*10
147+
#display_board(board)
148+
player1_marker, player2_marker= player_input()
149+
turn= choose_first()
150+
play_game = input('Are you ready to play? Enter Yes or No.')
151+
152+
if play_game.lower()[0] == 'y':
153+
game_on = True
154+
else:
155+
game_on = False
156+
while game_on:
157+
if turn=='Player 1 goes':
158+
display_board(board)
159+
position= player_choice(board)
160+
place_marker(board,player1_marker,position)
161+
#display_board(board)
162+
if win_check(board,player1_marker) is True:
163+
display_board(board)
164+
print('Player 1 has won')
165+
game_on=False
166+
else:
167+
if full_board_check(board) is True:
168+
display_board(board)
169+
print('Tie Game!!')
170+
game_on=False
171+
else:
172+
print('Player 2 goes')
173+
turn= 'Player 2 goes'
174+
175+
else:
176+
display_board(board)
177+
position= player_choice(board)
178+
place_marker(board,player2_marker,position)
179+
#display_board(board)
180+
if win_check(board,player2_marker) is True:
181+
display_board(board)
182+
print('Player 2 has won')
183+
game_on=False
184+
else:
185+
if full_board_check(board) is True:
186+
display_board(board)
187+
print('Tie Game!!')
188+
game_on=False
189+
else:
190+
print('Player 1 goes')
191+
turn= 'Player 1 goes'
192+
if not replay():
193+
break
194+
195+
196+
197+
198+
199+
200+
# In[ ]:
201+
202+
203+
204+

0 commit comments

Comments
 (0)