Coding Global Background
Coding Global

need help with my python project pls (hangman game)

Archived 2 years ago
7 messages
1 members
Created 2 years ago
Updated 2 years ago
Open in Discord
V
vyxi
Hi, I dont understand why my code updates the variable for letters_guessed in the while loop but not for number_of_incorrect_guesses

in my understanding, it should work

here is my code:

import random


def is_game_over(hidden_word, letters_guessed, number_of_incorrect_guesses):
    if all(letter in letters_guessed for letter in hidden_word):
        if input("You win! would you like to play again? (y/n) ").lower() == "y":
            main()
    elif number_of_incorrect_guesses == 6:
        word = ''.join([letter for letter in hidden_word])
        print(f"""You lose :(
the hidden word was {word}""")
        if input("would you like to play again? (y/n) ").lower() == "y":
            main()
    else:
        number_of_incorrect_guesses += 1
    return number_of_incorrect_guesses >= 6




def ask_user_for_guess(letters_guessed):
    guess = input("Guess a letter: ").lower()
    if len(guess) != 1 or not guess.isalpha() or guess in letters_guessed:
        print("Invalid guess. Please enter a single letter you haven't guessed yet.")
        ask_user_for_guess(letters_guessed)
    else:
        letters_guessed.append(guess)


def print_hidden_word(hidden_word, letters_guessed):
    for letter in hidden_word:
        if letter in letters_guessed:
            print(letter, end="")
        else:
            print("_", end="")
    print()


def print_gallows(number_of_incorrect_guesses):
    gallows = [

    ]
    print(gallows[number_of_incorrect_guesses])


def main():
    print("Welcome to Hangman!")
    word_list = [

    ]
    hidden_word = list(random.choice(word_list))
    letters_guessed = []
    number_of_incorrect_guesses = 0

    while not is_game_over(hidden_word, letters_guessed, number_of_incorrect_guesses):
        ask_user_for_guess(letters_guessed)
        is_game_over(hidden_word, letters_guessed, number_of_incorrect_guesses)
        print_gallows(number_of_incorrect_guesses)
        print_hidden_word(hidden_word, letters_guessed)

main()

Replies (7)