Example #1
0
    def play_game(self):
        """Playing the game."""
        announcer = Announcer()
        diff = announcer.display_supported_difficulties()
        lang = announcer.ask_for_language()

        self.read_from_file(announcer.difficulty[diff][1][0],
                            announcer.difficulty[diff][1][1], lang)

        chosen_word = self.choose_word()
        hidden_word = self.hidden_word(chosen_word)
        won = False
        print("The word is: {}\n".format(" ".join(hidden_word)))

        while self.tries > 0 and not won:
            announcer.display_dashed_word()
            inp = announcer.ask_for_input()
            while self.letter_has_been_used(inp):
                print("You already used letter: '{}'".format(inp))
                inp = self.ask_for_input()
            self.used_letters.append(inp)
            print("Used letters: {}\n".format(sorted(self.used_letters)))

            if self.right_guess(chosen_word, hidden_word, inp):
                announcer.right_guess_feedback(inp, hidden_word)
            else:
                announcer.wrong_guess_feedback(inp, hidden_word)
                announcer.tries -= 1

            # Check if game has been won or not.
            if announcer.game_over_won(hidden_word):
                won = True
            elif announcer.tries == 0:
                announcer.game_over_lost(chosen_word)
                exit()