need help with my python project pls (hangman game)
Archiviert 2 years ago
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:
```py
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()```
