Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Aula 03 (letras_acertadas[index])

A lógica utilizada em : letras_acertadas[index] = letra não ficou clara para mim, mesmo lendo a resposta de uma dúvida semelhante a minha aqui no fórum. Alguém poderia ajudar? por favor.

while (not acertou and not enforcou):

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

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

    print("Jogando...")
2 respostas
solução!

Olá Luna,

letras_acertadas é um array que está guardando quais letras foram acertadas e o local/posição dessas letras acertadas dentro da palavra.

O for vai executar para cada letra, e a variável index vai indicar a posição, igual a um contador.

Analisando a execução temos:

# Dados de teste
palavra_secreta = 'LUNA'
chute = 'U'
letras_acertadas = ["_", "_", "_", "_"]

Na primeira execução do for temos index igual a 0 e letra igual a 'L'. Assim o if vai retornar falso já que o chute (U) é diferente da letra (L). E no final o valor de index vai aumentar por + 1.

Na segunda execução do for temos index igual a 1 e letra igual a 'U'. Agora o if vai ser verdadeiro, chute (U) é igual a letra atual (U), e o código letras_acertadas[index] = letra será executado:

# index é 1 e a letra é 'U'
# Substituindo os valores temos:
letras_acertadas[1] = 'U'

# Agora esse é o valor de letras_acertadas (lembrando que a posição começa em 0):
["_", "U", "_", "_"]
# Colocamos o 'U' na posição 1

Na terceira execução temos chute (U) diferente da letra atual (N), e na quarta e final execução também, chute (U) e letra (A). O valor de index continua a aumentar por + 1 a cada execução, mas seu valor não é mais utilizado.

Então agora você tem um array que armazena qual letra foi acertada e a sua posição, e assim vai montando a palavra letra por letra, até a pessoa acertar tudo ou perder.

Espero ter ajudado, se ainda tiver qualquer dúvida pode perguntar.

Agora ficou bem claro, Obrigada!