1
resposta

Como opera e qual a função do index no código?

Boa tarde pessoal, tudo bem?

Na parte do index, não ficou claro para mim como ele funciona no código ...

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

Nao entendi como ele funciona (ou é usado) dentro do laço for, e nem pq existe o "index+1" ...

Se alguem puder me explicar, fico muito grato!! :)

vlw

1 resposta

Bom dia, Rodrigo

No exercício da forca, foi criada uma lista auxiliar que contém as letras que já foram acertadas nos chutes anteriores. Inicialmente essa lista está preenchida completamente por place holders, que são caracteres que representam as letras que não foram acertadas ainda. No caso do exercício desenvolvido, pelo caractere "_". A medida em que os chutes são feitos e é descoberta cada letra da palavra secreta, deve-se substituir esse caractere place holder pela letra correta na posição correta. E é ai que surge o propósito dessa variável index.

O laço for tem a função de percorrer a palavra secreta letra por letra e comparar cada uma delas com o chute. Considerando que uma string é uma lista de caracteres, cada letra tem um índice que representa sua posição na palavra. Quando o chute feito for encontrado na palavra secreta, a gente quer que na lista auxiliar, na mesma posição em que a letra do chute foi encontrada, seja substituído o caractere "_" pela letra da palavra secreta. Portanto, a variável index tem a função de armazenar a posição de cada letra da palavra secreta e, quando o chute for encontrado, usar essa posição para substituir a lista auxiliar com a letra correta.

Ex:

palavra_secreta = 'oi'
chute = 'i'

lista_aux = ['_', '_']

# Primeiro loop:
index = 0
palavra_secreta[index] = 'o'

# como 'o' é diferente do chute, nada acontece e soma-se 1 ao index
# a lista fica: lista_aux = ['_', '_']

# Segundo loop:
index = 1
palavra_secreta[index] = 'i'

# como 'i' é igual ao chute:
lista_aux[index] = 'i'    

# a lista fica:  lista_aux = ['_', 'i'] 

Espero que tenho ajudado de alguma forma!