3
respostas

Dúvidas no (index) & (for) - aula 3.6

Quando eu coloco "for letras in palavra_secreta:" -> onde eu atribuí a variável "letras" para o Python identificar? Isto ficou confuso, pois notei que atribuímos a variável "chute", mas não a variável "letra". Faria mais sentido para mim "for chute in palavra_secreta"

Pois o "chute" seria a letra digitada pelo usuário, não é?

Outra coisa é o 'index = 0'

Até aqui, eu entendi. A varíavel index no início do jogo é 0, ai depois confesso que me perdi um pouco nessa continução abaixo:

        if chute.upper() == letra.upper(): 
            letras_acertadas[index] = letra
        index = index + 1

Veja abaixo o código inteiro do jogo. Ele não está dando erro, só estou querendo entender mesmo :)

def jogar(): print('****') print('Bem vindo ao jogo de Forca') print('****')

palavra_secreta = 'Banana'
letras_acertadas = ['_', '_', '_', '_', '_', '_']

enforcou = False
acertou = False

print(palavra_secreta.find("a")) #Para achar uma palavra em uma sentença
print(letras_acertadas)
while not enforcou and not acertou: #enquanto não enforcou e não acertou

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

    index = 0

    for letra in palavra_secreta:
        if chute.upper() == letra.upper(): #indifere se o chute ou a palavra for letra maiúscula
            letras_acertadas[index] = letra
        index = index + 1

    print(letras_acertadas)

print('Fim do Jogo!')
3 respostas

Olá,

Em um forem Python, quando utiliza a variável letra vc já está declarando e atribuindo um valor para ela.

No exercício, vc tem a necessidade de guardar o valor em letrapara posteriormente comparar se a letra atual do loop é igual a letra do chute. E é exatamente isso que está fazendo aqui...

for letra in palavra_secreta:
        if chute.upper() == letra.upper():

...iterando sobre palavra_secreta e comparando cada letra com o chute.

Por fim, nesse trecho

if chute.upper() == letra.upper(): 
    letras_acertadas[index] = letra
index = index + 1

A variável index é utilizada para percorrer a lista letras_acertadas. Desta forma, é possível posicionar as letras acertadas, substituindo os caracteres _.

[]'s

Muito obrigado, Luciano. Ficou super claro. Só uma última dúvida, por que o + 1 na expressão index = index + 1

Olá,

seria para substituir os underscores pela letra acertada

onde inicialmente seria

letras_acertadas = ['_', '_', '_', '_', '_', '_']

com este código

if chute.upper() == letra.upper(): 
    letras_acertadas[index] = letra
index = index + 1

a cada letra acertada ficaria assim

letras_acertadas = ['B', 'A', '_', '_', '_', '_']

Só lembrando que ainda falta no código postado, instruções para indicar se o jogador perdeu ou ganhou.

Poderia ser resolvido verificando se ainda existem _ em letradas_acertadas e definindo um limite de jogadas.

[]'s