diff --git a/game.py b/game.py index 493a74a..5e4dcc7 100644 --- a/game.py +++ b/game.py @@ -14,31 +14,37 @@ def snowman(snowman_word): - """Complete the snowman function - replace "pass" below with your own code - It should print 'Congratulations, you win!' - If the player wins and, - 'Sorry, you lose! The word was {snowman_word}' if the player loses - """ - pass + print(f"random word: {snowman_word}") + correct_letter_guess_statuses = build_letter_status_dict(snowman_word) + wrong_guesses_list = [] -def print_snowman_graphic(wrong_guesses_count): - """This function prints out the appropriate snowman image - depending on the number of wrong guesses the player has made. - """ + while len(wrong_guesses_list) < SNOWMAN_MAX_WRONG_GUESSES: + user_input = get_letter_from_user(correct_letter_guess_statuses, wrong_guesses_list) + + if user_input in correct_letter_guess_statuses: + print("You guessed a letter that's in the word!") + correct_letter_guess_statuses[user_input] = True + else: + print(f"The letter {user_input} is not in the word") + wrong_guesses_list.append(user_input) + + print_snowman_graphic(len(wrong_guesses_list)) + print_word_progress_string(snowman_word, correct_letter_guess_statuses) + print(f"Wrong guesses: {wrong_guesses_list}") + + if is_word_guessed(snowman_word, correct_letter_guess_statuses): + print("Congratulations, you win!") + return + print(f"Sorry, you lose! The word was {snowman_word}") + + +def print_snowman_graphic(wrong_guesses_count): for i in range(SNOWMAN_MAX_WRONG_GUESSES - wrong_guesses_count, SNOWMAN_MAX_WRONG_GUESSES): print(SNOWMAN_GRAPHIC[i]) - def get_letter_from_user(correct_letter_guess_statuses, wrong_guesses_list): - """This function takes the snowman_word_dict and the list of characters - that have been guessed incorrectly (wrong_guesses_list) as input. - It asks for input from the user of a single character until - a valid character is provided and then returns this character. - """ - valid_input = False user_input_string = None @@ -60,11 +66,6 @@ def get_letter_from_user(correct_letter_guess_statuses, wrong_guesses_list): def build_letter_status_dict(snowman_word): - """This function takes snowman_word as input and returns - a dictionary with a key-value pair for each letter in - snowman_word where the key is the letter and the value is `False`. - """ - letter_status_dict = {} for letter in snowman_word: letter_status_dict[letter] = False @@ -72,24 +73,11 @@ def build_letter_status_dict(snowman_word): def print_word_progress_string(snowman_word, correct_letter_guess_statuses): - """ - This function takes the snowman_word and snowman_word_dict as input. - It calls another function to generate a string representation of the - user's progress towards guessing snowman_word and prints this string. - """ - progress_string = generate_word_progress_string(snowman_word, correct_letter_guess_statuses) print(progress_string) def generate_word_progress_string(snowman_word, correct_letter_guess_statuses): - """ - This function takes the snowman_word and snowman_word_dict as input. - It creates and returns an output string that shows the correct letter - guess placements as well as the placements for the letters yet to be - guessed. - """ - output_string = "" is_not_first_letter = False @@ -108,11 +96,6 @@ def generate_word_progress_string(snowman_word, correct_letter_guess_statuses): def is_word_guessed(snowman_word, correct_letter_guess_statuses): - """ - This function takes the snowman_word and snowman_word_dict as input. - It returns True if all the letters of the word have been guessed, and False otherwise. - """ - for letter in snowman_word: if not correct_letter_guess_statuses[letter]: return False