import random

def choose_word():
    word_list = ["apple", "banana", "orange", "grape", "strawberry"]
    return random.choice(word_list)

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.strip()

def display_hangman(incorrect_guesses):
    stages = [
        """
           --------
           |      |
           |      O
           |     \|/
           |      |
           |     / \\
        """,
        """
           --------
           |      |
           |      O
           |     \|/
           |      |
           |     / 
        """,
        """
           --------
           |      |
           |      O
           |     \|/
           |      |
           |     
        """,
        """
           --------
           |      |
           |      O
           |     \|
           |      |
           |     
        """,
        """
           --------
           |      |
           |      O
           |      |
           |      |
           |     
        """,
        """
           --------
           |      |
           |      O
           |    
           |      
           |     
        """,
        """
           --------
           |      |
           |      
           |    
           |      
           |     
        """
    ]
    return stages[incorrect_guesses]

def hangman():
    word = choose_word()
    guessed_letters = []
    incorrect_guesses = 0
    max_guesses = len(word) * 2

    print("Welcome to Hangman!")
    print(display_word(word, guessed_letters))

    while incorrect_guesses < len(display_hangman(0)) - 1:
        guess = input("Guess a letter: ").lower()

        if guess in guessed_letters:
            print("You already guessed that letter.")
        elif guess in word:
            guessed_letters.append(guess)
            print("Correct!")
        else:
            guessed_letters.append(guess)
            incorrect_guesses += 1
            print("Incorrect guess!")

        print(display_word(word, guessed_letters))
        print(display_hangman(incorrect_guesses))

        if "_" not in display_word(word, guessed_letters):
            print("Congratulations! You guessed the word:", word)
            break

    if "_" in display_word(word, guessed_letters):
        print("Sorry, you ran out of guesses. The word was:", word)

    play_again = input("Would you like to play again? (yes/no): ").lower()
    if play_again == "yes":
        hangman()
    else:
        print("Thanks for playing!")

hangman()
