Olá Robson, tudo bem com você?
Fico feliz com que tenha levantado esse questionamento. Para implementarmos o código de forma que o usuário perca pontos ao repetir um chute já realizado, podemos criar uma lista que irá armazenar os chutes do usuário e realizar verificarmos a cada interação se o chute está nessa lista. As mudanças no código irão ocorrer na função jogar()
presente no arquivo forca.py, conforme apresento abaixo.
Na função jogar
adicionaremos uma nova lista, de nome chutes_realizados
para receber os chutes do usuário, e realizaremos a verificação se o chute feito já se encontra nessa lista, caso esteja, adicionamos +1
a variável erros
, desenhamos a forca e continuamos (continue
) para a próxima execução do laço de repetição. Caso o chute não esteja na lista chutes_realizados
ele será adicionado a lista. Conforme apresentado abaixo:
if chute in chutes_realizados:
print('Foi informado uma letra repetida, tente novamente!')
print("As seguintes letras {} já foram chutadas".format(chutes_realizados))
erros += 1
desenha_forca(erros)
continue
chutes_realizados.append(chute)
Código completo da função jogar()
com as mudanças já implementadas
def jogar():
imprime_mensagem_abertura()
palavra_secreta = carrega_palavra_secreta()
letras_acertadas = inicializa_letras_acertadas(palavra_secreta)
print(letras_acertadas)
enforcou = False
acertou = False
erros = 0
chutes_realizados = []
while(not enforcou and not acertou):
chute = pede_chute()
if chute in chutes_realizados:
print('Foi informado uma letra repetida, tente novamente!')
print("As seguintes letras {} já foram chutadas".format(chutes_realizados))
erros += 1
desenha_forca(erros)
continue
chutes_realizados.append(chute)
if(chute in palavra_secreta):
marca_chute_correto(chute, letras_acertadas, palavra_secreta)
else:
erros += 1
desenha_forca(erros)
enforcou = erros == 7
acertou = "_" not in letras_acertadas
print(letras_acertadas)
if(acertou):
imprime_mensagem_vencedor()
else:
imprime_mensagem_perdedor(palavra_secreta)
No GIF abaixo apresento a execução do jogo forca com a implementação descrita acima.
Após as mudanças aplicadas, salve o arquivo antes de realizar uma nova execução.
Espero ter lhe 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!