import random 

words = ["apple", "banana", "car", "orange", "bee", "phone", "python"]

def choose_wo ():
    return random.choice(words)

def display_word(word, guessed_letters):
    displayed_word = ""
    for letter in word:
        if letter in guessed_letters:
            displayed_word += letter
        else:
            displayed_word += "_"
    return displayed_word 

def hangman(name=None):
    if not name:
        name = input("Enter your name: ")
        if not name.isalpha():
            print("Please enter a valid name (letters only).")
            hangman()
            return
    
    print(f"Welcome {name} to Hangman!")
    
    word = choose_wo()
    guessed_letters = []
    incor_guesses = 0
    max_att = 6
    
    while True:
        try:
            print("\n" + display_word(word, guessed_letters))
            guess = input("Guess a letter: ").lower()
            
            if not guess.isalpha():
                print("Please enter letters only.")
                continue
        
            if guess in guessed_letters:
                print("You already guessed that letter.")
                continue
        
            guessed_letters.append(guess)
        
            if guess in word:
                print("Correct!")
            else:
                print("Incorrect.")
                incor_guesses += 1
            
            if incor_guesses >= max_att:
                print("You've run out of attempts! The word was:", word)
                break
            if all(letter in guessed_letters for letter in word):
                print("Congratulations! You guessed the word:", word)
                break
        
            print("Attempts remaining:", max_att - incor_guesses)
        
        except Exception as e:
            print("An error occurred:", e)

    play_again = input("Do you want to play again? \n 1- YES  2- NO : ").lower()
    if play_again == '1':
        print(f"Let's go! Good luck {name} :)")
        hangman(name)
        
    else:
        print("Thanks for playing! See you later! :)")  
                

if __name__ == "__main__":
    hangman()
       
          

    

 

