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