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

Programa não apresenta a letra na posição correta

Quando digito uma letra o código apresenta letras diferentes na mesma posição. EX: Palavra 'abacaxi' Digite uma letra: a / posição 0 / posição 1/ posição 2 Digite uma letra: b/ posição 0 Digite uma letra: c / posição 0 Digite uma letra: x/ na posição 0

Segue o codigo

def jogar():

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

    palavra_secreta = 'abacaxi'

    enforcou = False
    acertou = False

    while(not acertou and not enforcou):

        chute = input('Digite uma letra:')

        index = 0
        for letra in palavra_secreta:
            if chute == letra:
                print('Encontrei a letra {} na posição {}'.format(letra, index))
                index = index + 1

        print('Jogando..')

    print("Fim do jogo")

if __name__ == '__main__':
        jogar()
1 resposta
solução!

Olá Vinícius, tudo bem? Espero que sim!

Isso está ocorrendo porque você está começando a variável index com o valor 0, mas só aumenta o valor dele quando o chute está correto. Dessa maneira a variável index não fica sincronizada com a quantidade de vezes que o loop for foi executado.

Basta tirar a indentação de dentro do if que o programa vai funcionar normalmente:

index = 0
for letra in palavra_secreta:
    if chute == letra:
        print('Encontrei a letra {} na posição {}'.format(letra, index))
    index = index + 1

Dessa forma o loop for ficará sincronizado com o valor do index. Quando letra for a primeira letra da palavra o index será 0, quando for a segunda será 1 e assim por diante.

Há uma maneira de capturar o índice ao mesmo instante que está capturando a letra da palavra no loop for usando a função enumerate. Ela vai gerar uma tupla com o primeiro elemento sendo o índice e o segundo elemento sendo a letra, vou deixar aqui um exemplo, usando a formatação com f-strings também:

for index, letra in enumerate(palavra_secreta):
    if chute == letra:
        print(f'Encontrei a letra {letra} na posição {index}')

Espero que tenha tirado sua dúvida.

Estou à disposição. Bons estudos!