1+ # Implementation of Two Player Tic-Tac-Toe game in Python.
2+
3+ ''' We will make the board using dictionary
4+ in which keys will be the location(i.e : top-left,mid-right,etc.)
5+ and initialliy it's values will be empty space and then after every move
6+ we will change the value according to player's choice of move. '''
7+
8+ theBoard = {'1' : ' ' , '2' : ' ' , '3' : ' ' ,
9+ '4' : ' ' , '5' : ' ' , '6' : ' ' ,
10+ '7' : ' ' , '8' : ' ' , '9' : ' ' }
11+
12+ board_keys = []
13+
14+ for key in theBoard :
15+ board_keys .append (key )
16+
17+ ''' We will have to print the updated board after every move in the game and
18+ thus we will make a function in which we'll define the printBoard function
19+ so that we can easily print the board everytime by calling this function. '''
20+
21+
22+ def printBoard (board ):
23+ print (board ['1' ] + '|' + board ['2' ] + '|' + board ['3' ])
24+ print ('-+-+-' )
25+ print (board ['4' ] + '|' + board ['5' ] + '|' + board ['6' ])
26+ print ('-+-+-' )
27+ print (board ['7' ] + '|' + board ['8' ] + '|' + board ['9' ])
28+
29+
30+ # Now we'll write the main function which has all the gameplay functionality.
31+ def game ():
32+ turn = 'X'
33+ count = 0
34+
35+ for i in range (10 ):
36+ printBoard (theBoard )
37+ print ("It's your turn," + turn + ".Move to which place?" )
38+
39+ move = input ()
40+
41+ if theBoard [move ] == ' ' :
42+ theBoard [move ] = turn
43+ count += 1
44+ else :
45+ print ("That place is already filled.\n Move to which place?" )
46+ continue
47+
48+ # Now we will check if player X or O has won,for every move after 5 moves.
49+ if count >= 5 :
50+ if theBoard ['1' ] == theBoard ['2' ] == theBoard ['3' ] != ' ' : # across the top
51+ printBoard (theBoard )
52+ print ("\n Game Over.\n " )
53+ print (" **** " + turn + " won. ****" )
54+ break
55+ elif theBoard ['4' ] == theBoard ['5' ] == theBoard ['6' ] != ' ' : # across the middle
56+ printBoard (theBoard )
57+ print ("\n Game Over.\n " )
58+ print (" **** " + turn + " won. ****" )
59+ break
60+ elif theBoard ['7' ] == theBoard ['8' ] == theBoard ['9' ] != ' ' : # across the bottom
61+ printBoard (theBoard )
62+ print ("\n Game Over.\n " )
63+ print (" **** " + turn + " won. ****" )
64+ break
65+ elif theBoard ['7' ] == theBoard ['4' ] == theBoard ['1' ] != ' ' : # down the left side
66+ printBoard (theBoard )
67+ print ("\n Game Over.\n " )
68+ print (" **** " + turn + " won. ****" )
69+ break
70+ elif theBoard ['8' ] == theBoard ['5' ] == theBoard ['2' ] != ' ' : # down the middle
71+ printBoard (theBoard )
72+ print ("\n Game Over.\n " )
73+ print (" **** " + turn + " won. ****" )
74+ break
75+ elif theBoard ['9' ] == theBoard ['6' ] == theBoard ['3' ] != ' ' : # down the right side
76+ printBoard (theBoard )
77+ print ("\n Game Over.\n " )
78+ print (" **** " + turn + " won. ****" )
79+ break
80+ elif theBoard ['1' ] == theBoard ['5' ] == theBoard ['9' ] != ' ' : # diagonal
81+ printBoard (theBoard )
82+ print ("\n Game Over.\n " )
83+ print (" **** " + turn + " won. ****" )
84+ break
85+ elif theBoard ['7' ] == theBoard ['5' ] == theBoard ['3' ] != ' ' : # diagonal
86+ printBoard (theBoard )
87+ print ("\n Game Over.\n " )
88+ print (" **** " + turn + " won. ****" )
89+ break
90+
91+ # If neither X nor O wins and the board is full, we'll declare the result as 'tie'.
92+ if count == 9 :
93+ print ("\n Game Over.\n " )
94+ print ("It's a Tie!!" )
95+
96+ # Now we have to change the player after every move.
97+ if turn == 'X' :
98+ turn = 'O'
99+ else :
100+ turn = 'X'
101+
102+ # Now we will ask if player wants to restart the game or not.
103+ restart = input ("Do want to play Again?(y/n)" )
104+ if restart == "y" or restart == "Y" :
105+ for key in board_keys :
106+ theBoard [key ] = " "
107+
108+ game ()
109+
110+
111+ if __name__ == "__main__" :
112+ game ()
0 commit comments