Olá Eduardo, tudo bem com você?
Peço desculpas pela demora em lhe responder.
Meus parabéns pelo empenho e dedicação na resolução da atividade. Fico feliz que tenha compartilhado sua resolução no fórum Alura.
Vi que foi além do proposto na atividade e adicionou uma nova lógica de funcionamento do jogo, onde o número de tentativas máxima disponível para o usuário será definida pelo comprimento da palavra secreta (tentativas_restantes = int(len(palavra_secreta) - int(erros))
).
Com essa mudança na definição do número máximo de tentativas, será necessário modificar a atribuição da variável enforcou
, pois, ela está recebendo um valor máximo de tentativas fixo, neste caso, 6 tentativas (enforcou = erros == 6
). Da forma que está, caso a palavra secreta possua menos de 6 letras, será impresso para o usuário que possui um número negativo de tentativas restantes (Ex: "Você ainda tem -3 tentativas restantes!").
Recomendo duas mudanças no código, a primeira mudança será no momento em que é feito o uso da função len()
, não será necessário converter seu resultado para int
, essa função já retorna um valor do tipo int
. O mesmo acontece na conversão da variável erros
, o número salvo nela é um número do tipo int
. Assim, a declaração da variável tentativas_restantes
ficará da seguinte forma.
tentativas_restantes = len(palavra_secreta) - erros
O segundo ponto de mudança, será na declaração da variável enforcou
, onde no lugar de um número fixo de erros (6) usaremos o comprimento da palavra secreta como número máximo de erros. Ficando como apresentado abaixo.
enforcou = erros == len(palavra_secreta)
Após as mudanças salve o arquivo antes de executá-lo
Com essas mudanças, não será impresso um número negativo de tentativas para o usuário e o número máximo de tentativas será baseado no número de letras da palavra secreta.
Código completo com as mudanças aplicadas
while (not enforcou and not acertou):
chute = input("Qual letra? ")
chute = chute.strip().upper()
if (chute in palavra_secreta):
index = 0
for letra in palavra_secreta:
if (chute == letra):
letras_acertadas[index] = letra
index += 1
else:
erros += 1
tentativas_restantes = len(palavra_secreta) - erros
enforcou = erros == len(palavra_secreta)
acertou = "_" not in letras_acertadas
print(letras_acertadas)
print("Você ainda tem ", tentativas_restantes, "tentativas restantes!")
Espero ter ajudado. Em caso de dúvidas estou à disposição.
Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!