1
resposta

Mão na massa: Usando lista e um randomizador

Meu código atual esta assim, ta funcionando, mas caso vejam algo que eu possa melhorar, será muito bem vindo.

import random

def play():
    print(25*"/")
    print("/   O Jogo da Forca     / ")
    print(25*"/","\n")

    pais_secreto = ['brasil', 'australia', 'japao', 'canada', 'gana', 'grecia','peru', 'china', 'chile', 'cuba', 'belgica', 'polonia', 'jamaica', 'paraguai', 'alemanha', 'zimbabue', 'argentina', 'dinamarca', 'madagascar', 'eslovaquia', 'montenegro']
    random.shuffle(pais_secreto)
    pais_secreto = (pais_secreto[0])
    letras_acertadas = ("_" * len(pais_secreto))
    letras_certas = (list(letras_acertadas))

    enforcou = False
    escapou = False

    while(not enforcou and not escapou):
        print(f"O país tem {len(pais_secreto)} letras.", "\n")

        chute = input("chute uma letra: ")
        chute = chute.strip()

        posicao = 0
        for letra in pais_secreto:
            if (chute.upper() == letra.upper()):
                letras_certas[posicao] = letra
            posicao = posicao + 1

        print(letras_certas)

if(__name__ == "__main__"):
    play()
1 resposta

Olá Leonardo,

Meus parabéns pelo seu desenvolvimento.

Como implementação, podemos adicionar um teste para verificar quantas letras o usuário digitou, caso tenha informado mais de uma letra, será impresso uma mensagem avisando do erro. Usaremos a função len().

        if len(chute) > 1:
            print(f"\nVocê informou mais de uma letra, informe uma por vez\n")

Deixo abaixo o código completo para comparação.


import random

def play():
    print(25*"/")
    print("/   O Jogo da Forca     / ")
    print(25*"/","\n")

    pais_secreto = ['brasil', 'australia', 'japao', 'canada', 'gana', 'grecia','peru', 'china', 'chile', 'cuba', 'belgica', 'polonia', 'jamaica', 'paraguai', 'alemanha', 'zimbabue', 'argentina', 'dinamarca', 'madagascar', 'eslovaquia', 'montenegro']
    random.shuffle(pais_secreto)
    pais_secreto = (pais_secreto[0])
    letras_acertadas = ("_" * len(pais_secreto))
    letras_certas = (list(letras_acertadas))

    enforcou = False
    escapou = False

    while(not enforcou and not escapou):
        print(f"O país tem {len(pais_secreto)} letras.", "\n")

        chute = input("chute uma letra: ")
        chute = chute.strip()

        if len(chute) > 1:
            print(f"\nVocê informou mais de uma letra, informe uma por vez\n")

        posicao = 0
        for letra in pais_secreto:
            if (chute.upper() == letra.upper()):
                letras_certas[posicao] = letra
            posicao = posicao + 1

        print(letras_certas)

if(__name__ == "__main__"):
    play()

Abraços e bons estudos.