2
respostas

Meu Index não coloca a letra no lugar certo

Pessoal, meu index não adiciona a letra na posição correta, mas sim sempre na primeira posição. Podem me ajudar?

def jogar():

    print("*********************************")
    print("Bem vindo ao jogo de Forca!")
    print("*********************************")

    palavra_secreta = "banana".upper()
    letras_acertadas = ["_", "_", "_", "_", "_", "_"]

    enforcou = False
    acertou = False
    erros = 0

    print(letras_acertadas)

    #enquanto(True)
    while(not enforcou and not acertou):

        chute = input("Qual letra? ")
        chute = chute.strip().upper()

        if(chute in palavra_secreta):
            index = 0
            for letra in palavra_secreta:
                if (chute == letra):
                    letras_acertadas[index] = letra
            index += 1
        else:
            erros += 1

        enforcou = erros == 6
        print(letras_acertadas)


    print("Fim do Jogo")

if(__name__ == "__main__"):
    jogar()
2 respostas

Você só incrementa o index quando acerta a letra, se a letra chutada for errada ele permanece com o index onde está...

O seu index está fora do laço for, observe a indentação. Logo, sempre que o programa é executado o valor do index permanece o mesmo. Experimente dar um tab ou quatro espaços no index += 1. Segue código correto.

for letra in palavra_secreta:
    if (chute == letra):
        letras_acertadas[index] = letra
    index += 1