Last active
March 28, 2022 07:06
-
-
Save jamesshah/269b59a9fc2e1fc9b1a83aa75c545006 to your computer and use it in GitHub Desktop.
TicTacToe Game implemented in python3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Implementation of Two Player Tic-Tac-Toe game in Python. | |
''' We will make the board using dictionary | |
in which keys will be the location(i.e : top-left,mid-right,etc.) | |
and initialliy it's values will be empty space and then after every move | |
we will change the value according to player's choice of move. ''' | |
theBoard = {'7': ' ' , '8': ' ' , '9': ' ' , | |
'4': ' ' , '5': ' ' , '6': ' ' , | |
'1': ' ' , '2': ' ' , '3': ' ' } | |
board_keys = [] | |
for key in theBoard: | |
board_keys.append(key) | |
''' We will have to print the updated board after every move in the game and | |
thus we will make a function in which we'll define the printBoard function | |
so that we can easily print the board everytime by calling this function. ''' | |
def printBoard(board): | |
print(board['7'] + '|' + board['8'] + '|' + board['9']) | |
print('-+-+-') | |
print(board['4'] + '|' + board['5'] + '|' + board['6']) | |
print('-+-+-') | |
print(board['1'] + '|' + board['2'] + '|' + board['3']) | |
# Now we'll write the main function which has all the gameplay functionality. | |
def game(): | |
turn = 'X' | |
count = 0 | |
for i in range(10): | |
printBoard(theBoard) | |
print("It's your turn," + turn + ".Move to which place?") | |
move = input() | |
if theBoard[move] == ' ': | |
theBoard[move] = turn | |
count += 1 | |
else: | |
print("That place is already filled.\nMove to which place?") | |
continue | |
# Now we will check if player X or O has won,for every move after 5 moves. | |
if count >= 5: | |
if theBoard['7'] == theBoard['8'] == theBoard['9'] != ' ': # across the top | |
printBoard(theBoard) | |
print("\nGame Over.\n") | |
print(" **** " +turn + " won. ****") | |
break | |
elif theBoard['4'] == theBoard['5'] == theBoard['6'] != ' ': # across the middle | |
printBoard(theBoard) | |
print("\nGame Over.\n") | |
print(" **** " +turn + " won. ****") | |
break | |
elif theBoard['1'] == theBoard['2'] == theBoard['3'] != ' ': # across the bottom | |
printBoard(theBoard) | |
print("\nGame Over.\n") | |
print(" **** " +turn + " won. ****") | |
break | |
elif theBoard['1'] == theBoard['4'] == theBoard['7'] != ' ': # down the left side | |
printBoard(theBoard) | |
print("\nGame Over.\n") | |
print(" **** " +turn + " won. ****") | |
break | |
elif theBoard['2'] == theBoard['5'] == theBoard['8'] != ' ': # down the middle | |
printBoard(theBoard) | |
print("\nGame Over.\n") | |
print(" **** " +turn + " won. ****") | |
break | |
elif theBoard['3'] == theBoard['6'] == theBoard['9'] != ' ': # down the right side | |
printBoard(theBoard) | |
print("\nGame Over.\n") | |
print(" **** " +turn + " won. ****") | |
break | |
elif theBoard['7'] == theBoard['5'] == theBoard['3'] != ' ': # diagonal | |
printBoard(theBoard) | |
print("\nGame Over.\n") | |
print(" **** " +turn + " won. ****") | |
break | |
elif theBoard['1'] == theBoard['5'] == theBoard['9'] != ' ': # diagonal | |
printBoard(theBoard) | |
print("\nGame Over.\n") | |
print(" **** " +turn + " won. ****") | |
break | |
# If neither X nor O wins and the board is full, we'll declare the result as 'tie'. | |
if count == 9: | |
print("\nGame Over.\n") | |
print("It's a Tie!!") | |
# Now we have to change the player after every move. | |
if turn =='X': | |
turn = 'O' | |
else: | |
turn = 'X' | |
# Now we will ask if player wants to restart the game or not. | |
restart = input("Do want to play Again?(y/n)") | |
if restart == "y" or restart == "Y": | |
for key in board_keys: | |
theBoard[key] = " " | |
game() | |
if __name__ == "__main__": | |
game() |
ghost
commented
Feb 26, 2021
via email
Thank you!
Le ven. 26 févr. 2021 à 10:02, TonyynoT <[email protected]> a écrit :
… ***@***.**** commented on this gist.
------------------------------
Too cool !!!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://gist.github.com/269b59a9fc2e1fc9b1a83aa75c545006#gistcomment-3646280>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ARBEDWAJF7RLS2JYNHIMC4LTA5WTLANCNFSM4P3N7K3A>
.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment