1- '''This is a simple game called TicTacToe and must be played with 2 players'''
1+ """
2+ This is a simple game called TicTacToe and must be played with 2 players
3+ The IDE used is PyCharm
4+ """
25import random
3- from IPython .display import clear_output
46
57board = ['k' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' ]
68available = [str (num ) for num in range (0 , 10 )]
9+
10+
711def display_board (a , b ):
8- '''Display the board game the the available spots'''
9- print ('Available GAME BOARD\n ' +
10- ' Moves \n \n ' +
11- a [7 ] + '|' + a [8 ] + '|' + a [9 ]+ ' ' + b [7 ] + '|' + b [8 ] + '|' + b [9 ]+ '\n ' +
12- a [4 ] + '|' + a [5 ] + '|' + a [6 ]+ ' ' + b [4 ] + '|' + b [5 ] + '|' + b [6 ]+ '\n ' +
13- a [1 ] + '|' + a [2 ] + '|' + a [3 ]+ ' ' + b [1 ] + '|' + b [2 ] + '|' + b [3 ])
12+ """Display the board game the the available spots"""
13+ print ('Available GAME BOARD\n ' +
14+ ' Moves \n \n ' +
15+ a [7 ] + '|' + a [8 ] + '|' + a [9 ] + ' ' + b [7 ] + '|' + b [8 ] + '|' + b [9 ] + '\n ' +
16+ a [4 ] + '|' + a [5 ] + '|' + a [6 ] + ' ' + b [4 ] + '|' + b [5 ] + '|' + b [6 ] + '\n ' +
17+ a [1 ] + '|' + a [2 ] + '|' + a [3 ] + ' ' + b [1 ] + '|' + b [2 ] + '|' + b [3 ])
18+
1419
1520def welcome ():
16- ''' A welcome message'''
21+ """ A welcome message"""
1722 print ('Welcome to Tic-Tac_toe. It is a game for two players' )
1823 print ('The first to go will be chosen randomly' )
1924
25+
2026def ask_marker ():
2127 '''Ask for a marker from the preference of the player'''
2228 marker = input ("Player 1, which marker do you wanna be? X or O? " )
2329 while (marker .upper () != 'X' ) and (marker .upper () != 'O' ):
2430 marker = input ("Just X or O pls: " )
2531 return marker .upper ()
2632
33+
2734def check_win (board , marker ):
28- '''Return true if the player wins'''
29- return ((board [1 ] == board [2 ] == board [3 ] == marker ) or #first horizontal
30- (board [4 ] == board [5 ] == board [6 ] == marker ) or #second horizontal
31- (board [7 ] == board [8 ] == board [9 ] == marker ) or #third horizontal
32- (board [1 ] == board [4 ] == board [7 ] == marker ) or #first vertical
33- (board [2 ] == board [5 ] == board [8 ] == marker ) or #second vertical
34- (board [3 ] == board [6 ] == board [9 ] == marker ) or #third vertical
35- (board [1 ] == board [5 ] == board [9 ] == marker ) or #first diagonal
36- (board [3 ] == board [5 ] == board [7 ] == marker )) #second diagonal
35+ """Return true if the player wins"""
36+ return ((board [1 ] == board [2 ] == board [3 ] == marker ) or # first horizontal
37+ (board [4 ] == board [5 ] == board [6 ] == marker ) or # second horizontal
38+ (board [7 ] == board [8 ] == board [9 ] == marker ) or # third horizontal
39+ (board [1 ] == board [4 ] == board [7 ] == marker ) or # first vertical
40+ (board [2 ] == board [5 ] == board [8 ] == marker ) or # second vertical
41+ (board [3 ] == board [6 ] == board [9 ] == marker ) or # third vertical
42+ (board [1 ] == board [5 ] == board [9 ] == marker ) or # first diagonal
43+ (board [3 ] == board [5 ] == board [7 ] == marker )) # second diagonal
44+
3745
3846def check_full (board ):
39- ''' Return true if the board is full'''
47+ """ Return true if the board is full"""
4048 hold = 1
4149 for x in board :
4250 if x == ' ' :
4351 hold += 1
4452 return hold == 1
4553
54+
4655def place_marker (board , available , marker , position ):
47- ''' Place the marker in the position into the board and clear the same position from availables'''
56+ """ Place the marker in the position into the board and clear the same position from availables"""
4857 board [position ] = marker
4958 available [position ] = ' '
5059
60+
5161def check_whitespace (board , position ):
52- ''' Return True if there is a white space in the position of the board'''
62+ """ Return True if there is a white space in the position of the board"""
5363 return board [position ] == ' '
5464
65+
5566def ask_input (board , name , marker ):
56- ''' Ask the player where he wants to place the marker in the board'''
57- print ('{}, type the positon (1-9) for you marker({}): ' .format (name , marker ))
67+ """ Ask the player where he wants to place the marker in the board"""
68+ print ('{}, type the position (1-9) for you marker({}): ' .format (name , marker ))
5869 position = 0
5970 while position not in [1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ] or not check_whitespace (board , position ):
6071 try :
@@ -67,16 +78,18 @@ def ask_input(board, name, marker):
6778 print ("Invalid position, try again pls" )
6879 return position
6980
81+
7082def get_random ():
71- ''' Chose randomly from Player 1 and 2'''
83+ """ Chose randomly from Player 1 and 2"""
7284 get_first = random .randint (1 , 2 )
7385 if get_first == 1 :
7486 return 'Player 1'
7587 else :
7688 return 'Player 2'
7789
90+
7891def play_again ():
79- ''' Return true if want to play again.'''
92+ """ Return true if want to play again."""
8093 option = " "
8194 option = str (input ("Do you want to play again?? (Yes or No): " ))
8295 while (option [0 ].upper () != 'Y' ) and (option [0 ].upper () != 'N' ):
@@ -101,7 +114,7 @@ def play_again():
101114 if next_player == 'Player 1' :
102115 display_board (available , board )
103116 place_marker (board , available , marker_p1 , ask_input (board , next_player , marker_p1 ))
104- clear_output ()
117+ print ( ' \n ' * 20 ) # prints 20 lines to separate the outputs.
105118 if check_win (board , marker_p1 ):
106119 print ("The {} ({}) won. Congrats! " .format (next_player , marker_p1 ))
107120 display_board (available , board )
@@ -115,7 +128,7 @@ def play_again():
115128 elif next_player == 'Player 2' :
116129 display_board (available , board )
117130 place_marker (board , available , marker_p2 , ask_input (board , next_player , marker_p2 ))
118- clear_output ()
131+ print ( ' \n ' * 20 ) # prints 20 lines to separate the outputs.
119132 if check_win (board , marker_p2 ):
120133 print ("The {} ({}) won. Congrats! " .format (next_player , marker_p2 ))
121134 display_board (available , board )
@@ -127,10 +140,10 @@ def play_again():
127140 next_player = 'Player 1'
128141
129142 if not play_again ():
130- clear_output ()
143+ print ( ' \n ' * 20 ) # prints 20 lines to separate the outputs.
131144 print ('Thank you for playing :)' )
132145 break
133146 else :
134147 board = ['k' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' ]
135148 available = [str (num ) for num in range (0 , 10 )]
136- clear_output ()
149+ print ( ' \n ' * 20 ) # prints 20 lines to separate the outputs.
0 commit comments