Created
November 3, 2020 04:19
-
-
Save rnovec/946d65e47b44cff5a060bb4dbe890ce2 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
| 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']) | |
| 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 | |
| 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() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment