no caso eu gostaria q erros/tentativas fossem contados apenas quando erra a letra(que eu creio que deveria a função de else nesse caso não?), porem no caso está contando apenas quando acerto, como consertar isso? meu codigo aparentemente está igual ao do professor, até o momento da postagem estou na primeira atividade da ultima aula.
import random
def jogar():
mensagem_abertura()
palavrasecreta = carrega_palavra_secreta()
letras_acertadas = inicializa_letras_acertadas(palavrasecreta)
letras_faltando = str(letras_acertadas.count('_'))
print('A palavra contêm {} letras.'.format(letras_faltando))
enforcou = False
acertou = False
tentativas = 5
print('Você pode errar '+str(tentativas)+' vezes.')
while(not enforcou and not acertou):
chute = input('Qual letra? ')
chute = chute.strip().upper()
if (chute in palavrasecreta):
index=0
for letra in palavrasecreta:
if(chute.upper() == letra.upper()):
letras_acertadas[index] = letra
index += 1
else:
tentativas -= 1
print('Errou, você tem {} tentativas.'.format(tentativas))
enforcou = tentativas == 0
acertou = '_' not in letras_acertadas
print(letras_acertadas)
if(acertou):
print('Ganhou!')
print('enforcou '+str(enforcou))
print('acertou '+str(acertou))
print('fim do jogo')
def mensagem_abertura(): print('') print('Bem vindo ao jogo de forca!') print('')
def carrega_palavra_secreta(): arquivo = open("palavras.txt", "r") palavras = []
for linha in arquivo:
linha = linha.strip()
palavras.append(linha)
arquivo.close()
numero = random.randrange(0,len(palavras))
palavrasecreta = palavras[numero].upper()
return palavrasecreta
def inicializa_letras_acertadas(palavra): return ['_' for letra in palavra]
if(name=='main'): jogar()