Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problemas para acertar palavras que tenham mais de 7 letras distintas

Quando a palavra secreta é (por exemplo) CARAMBOLA, e por acaso eu errar uma letra, mas acertar todas as demais, no último chute, ao invés de ganhar, ele me enforca.

['C', 'A', 'R', 'A', 'M', 'B', 'O', '', 'A'] Informe uma letra: l Puxa, você foi enforcado! A palavra era CARAMBOLA __ / \ / \// /\| XXXX XXXX | / | XXXX XXXX |/ | XXX XXX | | | __ XXX __/ |\ XXX /| | | | | | I I I I I I I | | I I I I I I | \ / \ / _____/Fim do jogo.

O código está da seguinte forma:

import random

def jogar_forca():

imprime_mensagem_abertura()
palavra_secreta = carrega_palavra_secreta()

letras_acertadas = inicializa_letras_acertadas(palavra_secreta)
print(letras_acertadas)

enforcou = False
acertou = False
erros = 0


while (not enforcou and not acertou):

    chute = pede_chute()

    if (chute in palavra_secreta):
        marca_chute_correto(chute, letras_acertadas, palavra_secreta)

    else:
        erros = erros + 1
        desenha_forca(erros)

    if (erros == 7):
        break
    if ("_" not in letras_acertadas):
        break
    print(letras_acertadas)

if (acertou):
    mensagem_vencedor()
else:
    mensagem_perdedor(palavra_secreta)

Alguém consegue me dar uma luz?

1 resposta
solução!

Achei o meu erro...rsrs.. está aqui:

if (erros == 7): break if ("" not in letrasacertadas): break

Onde deveria estar:

enforcou = erros == 7 acertou = "" not in letrasacertadas