1
resposta

Minha variável de letras acertadas foi repetindo conforme a quantidade de letras da palavra secreta

    print('---------------------------------')
    print('---Bem vindo ao jogo da forca!---')
    print('---------------------------------')

    pal_sec = 'castelinho'
    letras_c = ['_', '_', '_', '_', '_', '_', '_', '_', '_', '_', ]

    lose = False
    win = False

    while(not lose and not win):
        print('_ _ _ _ _ _ _ _ _ _')
        print(' ')

        palpite = input('Escolha uma letra ')
        palpite = palpite.strip()

        i = 0
        for letra in pal_sec:
            if palpite.lower() == letra or palpite.upper() == letra:
                letras_c[i] = letra
            i += 1
            print(letras_c)







    print('---------------------------------')
    print('Fim de jogo')
    print('---------------------------------')   

Nesse código, eu chamei o index de i

1 resposta

Olá Lucas, tudo bem com você?

No seu código o print(letras_c) está dentro do laço for letra in pal_sec: isso faz com que a variável de letras secretas seja apresentada uma vez para cada letra da palavra secreta. Para fazer a correção, basta colocar o print(letras_c) fora do laço for letra in pal_sec:.

Local da correção

    for letra in pal_sec:
        if palpite.lower() == letra or palpite.upper() == letra:
            letras_c[i] = letra
        i += 1
    print(letras_c)

A mudança foi realizada na última linha do código acima.

Código completo

print('---------------------------------')
print('---Bem vindo ao jogo da forca!---')
print('---------------------------------')

pal_sec = 'castelinho'
letras_c = ['_', '_', '_', '_', '_', '_', '_', '_', '_', '_', ]

lose = False
win = False

while (not lose and not win):
    print('_ _ _ _ _ _ _ _ _ _')
    print(' ')

    palpite = input('Escolha uma letra ')
    palpite = palpite.strip()

    i = 0
    for letra in pal_sec:
        if palpite.lower() == letra or palpite.upper() == letra:
            letras_c[i] = letra
        i += 1
    print(letras_c)

print('---------------------------------')
print('Fim de jogo')
print('---------------------------------')

Uma dica de boas práticas de programação é a padronização do idioma usado na criação das variáveis, no seu código temos o uso de dois idiomas; lose = (inglês) e pal_sec = (português), essa padronização irá trazer uma fluidez melhor na leitura do seu código, dê prioridade para o idioma que você tem um domínio maior e que irá apresentar uma facilidade de entendimento quando você for ler o código depois de um tempo.

Em caso de mais dúvidas encontro-me à disposição.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!