Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def __init__(self):
- Frame.__init__(self, bg = "black")
- self.protocol('WM_DELETE_WINDOW', self.doSomething)
- self.pack(expand = 1, fill = BOTH)
- def doSomething(self):
- if showinfo.askokcancel("Quit?", "Are you sure you want to quit?"):
- self.quit()
- # Function to print Tic Tac Toe
- def print_tic_tac_toe(values):
- print("\n")
- print("\t | |")
- print("\t {} | {} | {}".format(values[6], values[7], values[8]))
- print('\t_____|_____|_____')
- print("\t | |")
- print("\t {} | {} | {}".format(values[3], values[4], values[5]))
- print('\t_____|_____|_____')
- print("\t | |")
- print("\t {} | {} | {}".format(values[0], values[1], values[2]))
- print("\t | |")
- print("\n")
- # Function to print the score-board
- def print_scoreboard(score_board):
- print("\t--------------------------------")
- print("\t SCOREBOARD ")
- print("\t--------------------------------")
- players = list(score_board.keys())
- print("\t ", players[0], "\t ", score_board[players[0]])
- print("\t ", players[1], "\t ", score_board[players[1]])
- print("\t--------------------------------\n")
- # Function to check if any player has won
- def check_win(player_pos, cur_player):
- # All possible winning combinations
- soln = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 4, 7], [2, 5, 8], [3, 6, 9], [1, 5, 9], [3, 5, 7]]
- # Loop to check if any winning combination is satisfied
- for x in soln:
- if all(y in player_pos[cur_player] for y in x):
- # Return True if any winning combination satisfies
- return True
- # Return False if no combination is satisfied
- return False
- # Function to check if the game is drawn
- def check_draw(player_pos):
- if len(player_pos['X']) + len(player_pos['O']) == 9:
- return True
- return False
- # Function for a single game of Tic Tac Toe
- def single_game(cur_player):
- # Represents the Tic Tac Toe
- values = [' ' for x in range(9)]
- # Stores the positions occupied by X and O
- player_pos = {'X':[], 'O':[]}
- # Game Loop for a single game of Tic Tac Toe
- while True:
- print_tic_tac_toe(values)
- # Try exception block for MOVE input
- try:
- print("Player ", cur_player, " turn. Which box? : ", end="")
- move = int(input())
- except ValueError:
- print("Wrong Input!!! Try Again")
- continue
- # Sanity check for MOVE inout
- if move < 1 or move > 9:
- print("Wrong Input!!! Try Again")
- continue
- # Check if the box is not occupied already
- if values[move-1] != ' ':
- print("Place already filled. Try again!!")
- continue
- # Update game information
- # Updating grid status
- values[move-1] = cur_player
- # Updating player positions
- player_pos[cur_player].append(move)
- # Function call for checking win
- if check_win(player_pos, cur_player):
- print_tic_tac_toe(values)
- print("Player ", cur_player, " has won the game!!")
- print("\n")
- return cur_player
- # Function call for checking draw game
- if check_draw(player_pos):
- print_tic_tac_toe(values)
- print("Game Drawn")
- print("\n")
- return 'D'
- # Switch player moves
- if cur_player == 'X':
- cur_player = 'O'
- else:
- cur_player = 'X'
- if __name__ == "__main__":
- print("Player 1")
- player1 = input("Enter the name : ")
- print("\n")
- print("Player 2")
- player2 = input("Enter the name : ")
- print("\n")
- # Stores the player who chooses X and O
- cur_player = player1
- # Stores the choice of players
- player_choice = {'X' : "", 'O' : ""}
- # Stores the options
- options = ['X', 'O']
- # Stores the scoreboard
- score_board = {player1: 0, player2: 0}
- print_scoreboard(score_board)
- # Game Loop for a series of Tic Tac Toe
- # The loop runs until the players quit
- while True:
- # Player choice Menu
- print("Turn to choose for", cur_player)
- print("1 for X")
- print("2 for O")
- print("3 to Quit")
- # Try exception for CHOICE input
- try:
- choice = int(input())
- except ValueError:
- print("Wrong Input!!! Try Again\n")
- continue
- # Conditions for player choice
- if choice == 1:
- player_choice['X'] = cur_player
- if cur_player == player1:
- player_choice['O'] = player2
- else:
- player_choice['O'] = player1
- elif choice == 2:
- player_choice['O'] = cur_player
- if cur_player == player1:
- player_choice['X'] = player2
- else:
- player_choice['X'] = player1
- elif choice == 3:
- print("Final Scores")
- print_scoreboard(score_board)
- break
- else:
- print("Wrong Choice!!!! Try Again\n")
- # Stores the winner in a single game of Tic Tac Toe
- winner = single_game(options[choice-1])
- # Edits the scoreboard according to the winner
- if winner != 'D' :
- player_won = player_choice[winner]
- score_board[player_won] = score_board[player_won] + 1
- print_scoreboard(score_board)
- # Switch player who chooses X or O
- if cur_player == player1:
- cur_player = player2
- else:
- cur_player = player1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement