def jogar():
print("*********************************")
print("***Bem vindo ao jogo da Forca!***")
print("*********************************")
palavra_secreta = "banana".upper()
letras_acertadas = ["_", "_", "_", "_", "_", "_"]
letras_chutadas= []
enforcou = False
acertou = False
erros = 0
print(letras_acertadas)
while (not acertou and not enforcou):
chute = input("Qual letra? ")
chute = chute.strip().upper()
if(chute in letras_chutadas):
print("Voce ja chutou essa letra, tente outra diferente")
continue
if (chute in palavra_secreta):
index = 0
for letra in palavra_secreta:
if (chute == letra):
letras_acertadas[index] = letra
index += 1
else:
erros += 1
print("voce errou, ainda tem {} tentativas".format(erros - 6))
letras_chutadas.append(chute)
enforcou = erros == 6
acertou = "_" not in letras_acertadas
print(letras_acertadas)
if(erros == 6):
break
else:
continue
if (acertou):
print("Parabéns você acertou a palavra e venceu o jogo")
else:
print("Melhore seu raciocínio")
print("Fim do jogo")
if(__name__ == "__main__"):
jogar()
Alura Scuba TeamTime Alura | Apoio Educacional no Fórum
Olá Estevão, tudo bem com você?
Meus parabéns pela implementação do código e por ir além do proposto na Aula, fico feliz que você tenha compartilhado seu código com a comunidade do fórum. Gostaria de aproveitar a oportunidade e deixar algumas dicas de implementação do código.
Atualmente, quando um usuário erra uma letra, a mensagem informando a quantidade de tentativas restante está informando um número negativo de tentativas, por exemplo: "você errou, ainda tem -5 tentativas". Para que o número informado seja positivo, basta multiplicar o resultado da subtração do erros - 6 por -1, o código ficará como apresentado abaixo.
print("você errou, ainda tem {} tentativas".format((erros - 6) * -1))
Uma segunda dica que gostaria de deixar, será a respeito do uso da estrutura condicional if (acertou) / else: após a adição das cláusulas break e continue. Note no código abaixo que, a estrutura condicional if (acertou) / else: não será executada em nenhum momento, já que ao executar o break do if(erros == 6): o laço repetição é encerrado e ao executar o continue presente no else anterior é iniciado uma nova iteração do laço de repetição.
if(erros == 6):
break
else:
continue
if (acertou):
print("Parabéns você acertou a palavra e venceu o jogo")
else:
print("Melhore seu raciocínio")
Para fazer uso da segunda estrutura condicional, if (acertou) / else:, você pode deixá-la fora do laço de repetição while assim, com o encerramento do laço essa estrutura condicional será lida e executada. Para isso, basta selecionar o conjunto de código presente na estrutura condicional, if (acertou) / else: e pressionar + uma vez.
Peço que verifique se as propostas acima fazem sentido para o seu projeto, caso queira aplicá-las, após as mudanças, salve o arquivo antes de executá-lo.
Código completo com as mudanças aplicadas
def jogar():
print("*********************************")
print("***Bem vindo ao jogo da Forca!***")
print("*********************************")
palavra_secreta = "banana".upper()
letras_acertadas = ["_", "_", "_", "_", "_", "_"]
letras_chutadas= []
enforcou = False
acertou = False
erros = 0
print(letras_acertadas)
while (not acertou and not enforcou):
chute = input("Qual letra? ")
chute = chute.strip().upper()
if(chute in letras_chutadas):
print("Voce ja chutou essa letra, tente outra diferente")
continue
if (chute in palavra_secreta):
index = 0
for letra in palavra_secreta:
if (chute == letra):
letras_acertadas[index] = letra
index += 1
else:
erros += 1
print("você errou, ainda tem {} tentativas".format((erros - 6) * -1))
letras_chutadas.append(chute)
enforcou = erros == 6
acertou = "_" not in letras_acertadas
print(letras_acertadas)
if(erros == 6):
break
else:
continue
if (acertou):
print("Parabéns você acertou a palavra e venceu o jogo")
else:
print("Melhore seu raciocínio")
print("Fim do jogo")
if(__name__ == "__main__"):
jogar()
Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.
Espero ter ajudado. Fico à disposição em caso de dúvidas.
Abraços e bons estudos.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!