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

[Dúvida] Não entendo pq o index n substitui os traços


```import random
palavras = []
doc_de_palavras = open("NovoDocumentodeTexto.txt", "r", encoding="utf-8")

for linha in doc_de_palavras:
    linha = linha.strip()
    palavras.append(linha)


palavra = (random.choice(palavras).upper().strip())
print(type(palavra))
print(palavra)
palavra = list(palavra)
print(type(palavra))

print(palavra)

letras_acertadas = ["_" for letras in palavra]

print(letras_acertadas)

enforcado = False
ganhou = False

index = 0

while not ganhou and not enforcado:
    chute = (input("Chute a letra aqui: ").upper().strip())
    print("Seu chute foi {0}".format(chute).upper())
    #print(letras_acertadas)

for letras in palavra:
    #print(letra, palavra)
    if (chute) == (palavra):
        letras_acertadas[index] = (letras)
    index +=1

print(letras_acertadas)``
1 resposta
solução!

Olá, Victor!

Pelo que entendi, você está com dúvidas sobre por que o índice index não está substituindo os traços corretamente.

Analisando o seu código, percebo que você está comparando o chute do usuário com a palavra inteira, em vez de comparar com cada letra individualmente. Isso acontece na linha onde você verifica se o chute é igual à palavra:

if (chute) == (palavra):
    letras_acertadas[index] = (letras)

Nesse trecho, você está comparando o chute com a palavra inteira, o que nunca será verdadeiro, pois o chute é uma letra e a palavra é uma lista de letras.

Para corrigir isso, você precisa comparar o chute com cada letra da palavra. Você pode fazer isso usando um loop for:

for index, letra in enumerate(palavra):
    if chute == letra:
        letras_acertadas[index] = letra

Dessa forma, você percorre cada letra da palavra e verifica se ela é igual ao chute. Se for, você substitui o traço correspondente na lista letras_acertadas pela letra correta.

Espero ter ajudado e bons estudos!