def play_hangman(): word = get_word() word_list = get_word_list(word) word_set = set(word_list) temp = ["-" for x in word_list] correct_guesses = [] wrong_guesses = [] max_guesses = get_number_of_guesses() num_guesses = 0 if max_guesses == 20: difficulty = "EASY" elif max_guesses == 10: difficulty = "MEDIUM" else: difficulty = "HARD" print("\nThe word is {} letters long.".format(len(word_list))) print("- " * len(word)) while True: guesses_left = max_guesses - num_guesses print("\nYou have {} guesses left.".format(guesses_left)) guess = input("Enter a guess: ").upper() if check_guess(word_list, guess): if guess in wrong_guesses or guess in correct_guesses: print("\nYou have already guessed '{}'".format(guess)) one_letter_guess(word_list, temp, guess) continue if len(guess) == len(word): if whole_word_guess(word, guess): winner(word) wins_and_losses.add_to_wins() score = get_score(num_guesses, word) history = History(word, 1, 0, difficulty, score) history.add_to_history() print("Score:", score) break else: loser_guessed_wrong_word(word) wins_and_losses.add_to_losses() history = History(word, 0, 1, difficulty, 0) history.add_to_history() print("Score: 0") break if one_letter_guess(word_list, temp, guess): correct_guesses.append(guess) print("\n'{}' is in the word!".format(guess)) else: wrong_guesses.append(guess) print("\n'{}' is not in the word :(".format(guess)) num_guesses += 1 if num_guesses == max_guesses: loser_ran_out_of_guesses(word) wins_and_losses.add_to_losses() history = History(word, 0, 1, difficulty, 0) history.add_to_history() print("Score: 0") break if len(correct_guesses) == len(word_set): winner(word) wins_and_losses.add_to_wins() score = get_score(num_guesses, word) history = History(word, 1, 0, difficulty, score) history.add_to_history() print("Score:", score) break choice = continue_or_not() if choice == "Y": play_hangman() elif choice == "N": print("Thank you for playing.\n")