1
resposta

[Sugestão] Forca operante com opções de jogo

Segue o jogo com opções de jogar novamente e sair do jogo. A parte mais difícil for a lógica para decidir se a mensagem que aparece é para alguém que joga pela primeira vez ou não. Mais que isso, é sempre difícil entender quando você tem que marcar (flag) alguma coisa, como o fato que o jogo não foi jogado (already_played)

#!/usr/bin/env python3.9


def goodbye():
    print("Goodbye, then...", "\U0001F984", "\n")
    print("***" * 10, "\n")


def want_to_play():
    while True:
        answer = input("Wanna play? Type [y] for yes and [n] for no.\n\n")
        print()

        if answer == "n":
            goodbye()
            return False
        elif answer == "y":
            return True
        else:
            print("Just y or n, buddy.", "\n")


def wanna_play_again():
    while True:
        answer = input("Wanna play again? Type [y] for yes and [n] for no.\n\n")
        print()

        if answer == "n":
            goodbye()
            return False
        elif answer == "y":
            return True
        else:
            print("Just y or n, buddy.", "\n")


def play():
    already_played = False

    print()
    print("***" * 10, "\n")

    hanged = False
    secret_word = "banana"
    while True:
        success = False
        correct_guesses = ["_", "_", "_", "_", "_", "_"]

        if not already_played:
            print("Welcome to Hangman!", "\n")
            if want_to_play():
                already_played = True
            else:
                break
        elif not wanna_play_again():
            break

        while not hanged and not success:
            guess = input("Guess a letter: ").strip().lower()
            found = False

            for index, letter in enumerate(secret_word):
                if guess == letter:
                    correct_guesses[index] = letter
                    found = True

            print()
            print(correct_guesses, "\n")

            if not found:
                print(f"{guess} not found in word.", "\n")

            if "_" not in correct_guesses:
                success = True
                print("\U0001F973 " * 3, "You won!", "\U0001F973 " * 3, "\n")


print("Game Over!", "\n")

if __name__ == "__main__":
    print("***" * 10, "Hangman is being run directly!", "***" * 10, "\n")
    play()
1 resposta

Olá Rafael, tudo bem com você?

Meus parabéns pela implementação do código, fico feliz em ver sua implementação do jogo adicionando as opções para que o jogador possa jogar novamente ou sair do jogo. Continue com essa dedicação e empenho.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!