Opa boa tarde!
Fiz esse código deixando a var tentativas em função da dificuldade senecionada.
Além disso utilizei set para armazenar as tentativas e não permitir o consumo de tentativas em jogadas repetidas.
Está exibindo quantas letras faltam e quantas jogadas faltam. O jogo termina em caso de letras > jogadas.
Possui 2 opções de término por acerto, da forma passada em aula ou com if e break (está comentado). #edit
def runForca():
print("---------------------------------------------------------")
print("Bem vindo ao jogo da forca")
dificuldade = int(input("Escolha uma dificuldade: Fácil(1), Normal(2), Difícil(3)"))
print("---------------------------------------------------------")
palavraChave = "Prato".lower()
enforcou = False
acertou = False
chuteTry = {1}
tentativas = len(palavraChave) + round(10/dificuldade)
print(f"Você possui {tentativas} chutes")
chutesCorretos = ["_","_","_","_","_"]
print("______________________________________")
print(chutesCorretos)
print("--------------------------------------")
#equivalente à escrever enforcou == false and acertou == false
#isso pq o valor de acertou é false até que o player erre todas
# as chances e acertou é false até que o player acerte
#é possível verificar a primeira ocorrpência do de algum caracter em uma string com a função string.find(oque quero procurar)
while((not enforcou) and not acertou):
chute = input("Digite uma letra: \n").lower()
posAcerto = 0
#verifica se o item já foi chutado antes de iniciar uma tentativa
if not chute in chuteTry:
#adiciona o item chutado no set de chutes chuteTry
chuteTry.add(chute)
for letra in palavraChave:
#define valor de incremento das posições que o chute acertou (se acertou)
if(letra == chute):
if not chute in chutesCorretos:
chutesCorretos[posAcerto] = chute
posAcerto += 1
#verifica se ainda existem campos a serem "descobertos" pelo usuário
print(chutesCorretos)
#if not "_" in chutesCorretos:
# print("Você encerrou o game, parabéns")
#break
#subtrai as tentativas a cada iteração do while
tentativas = tentativas -1
print(f"Você ainda tem {tentativas} tentativas")
#calcula as tentativas restantes
numRest = chutesCorretos.count("_")
print(f"Restam {numRest} letras")
#verifica se o usuário conseguirá chegar ao fim do jogo com suas tentativas ou se suas tentativas ainda existem
enforcou = tentativas <= 0 or tentativas < numRest
acertou = not "_" in chutesCorretos
else:
print("Essa Letra já foi chutada")
if __name__ == "__main__":
runForca()
Postando pq acho interessante ler outros códigos e, desta forma, disponibilizo os meus.