text: from playsound import playsound
  #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)
  
  def tutorial():
      print(" Welcome user ! \n  you get 1-9 position to choose your move \n check below numbering ! \n ")
  
      print('7' + '|' + '8' + '|' + '9')
      print('-+-+-')
      print('4' + '|' + '5' + '|' + '6')
      print('-+-+-')
      print('1' + '|' + '2' + '|' + '3')
  
      input("Press Enter to close this Tutorial")    
  
  ''' 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():
      playsound('sound1.wav')
      turn = 'X'
      count = 0
  
  
      for i in range(10):
          printBoard(theBoard)
          print("It's your turn," + turn + ".Move to which place?")
          
          move = input()  
          playsound('sound2.wav')         
          try:
  
              if theBoard[move] == ' ':
                  theBoard[move] = turn
                  count += 1
              else:
                  #playsound('sound3.wav')
                  print("That place is already filled.\nMove to which place?")
                  continue
          except:
              #playsound('sound3.wav')
              print("\n \n Oopsi Daisy Wrong Input :(( Try Again !! \n \n ")        
          # 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")
                  playsound('sound4.wav')                
                  print(" **** " +turn + " won. ****")                
                  break
              elif theBoard['4'] == theBoard['5'] == theBoard['6'] != ' ': # across the middle
                  printBoard(theBoard)
                  print("\nGame Over.\n")
                  playsound('sound4.wav')                
                  print(" **** " +turn + " won. ****")
                  break
              elif theBoard['1'] == theBoard['2'] == theBoard['3'] != ' ': # across the bottom
                  printBoard(theBoard)
                  print("\nGame Over.\n")
                  playsound('sound4.wav')                
                  print(" **** " +turn + " won. ****")
                  break
              elif theBoard['1'] == theBoard['4'] == theBoard['7'] != ' ': # down the left side
                  printBoard(theBoard)
                  print("\nGame Over.\n")
                  playsound('sound4.wav')                
                  print(" **** " +turn + " won. ****")
                  break
              elif theBoard['2'] == theBoard['5'] == theBoard['8'] != ' ': # down the middle
                  printBoard(theBoard)
                  print("\nGame Over.\n")
                  playsound('sound4.wav')                
                  print(" **** " +turn + " won. ****")
                  break
              elif theBoard['3'] == theBoard['6'] == theBoard['9'] != ' ': # down the right side
                  printBoard(theBoard)
                  print("\nGame Over.\n")
                  playsound('sound4.wav')                
                  print(" **** " +turn + " won. ****")
                  break 
              elif theBoard['7'] == theBoard['5'] == theBoard['3'] != ' ': # diagonal
                  printBoard(theBoard)
                  print("\nGame Over.\n")   
                  playsound('sound4.wav')             
                  print(" **** " +turn + " won. ****")
                  break
              elif theBoard['1'] == theBoard['5'] == theBoard['9'] != ' ': # diagonal
                  printBoard(theBoard)
                  print("\nGame Over.\n")
                  playsound('sound4.wav')                
                  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!!")
              playsound('sound2.wav')
  
          # 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 i == 9:
          print(" \n \n Limit Exceeded Launch New Game")
  if __name__ == "__main__":
      tutorial()
      game()
  