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

[Dúvida] Quantas tentativas faltam

Eu criei uma variável para quantas tentativas faltam (quantas_faltam), porém não estou conseguindo saber como eu devo fazer para dar um valor para essa variável. O código:

def jogar():
    print('***************')
    print('BEM VINDO AO JOGO DA FORCA!')
    print('***************')

    palavra_secreta = 'cadeira'

    letras_corretas = ['_','_','_','_','_','_','_']

    enforcou = False
    acertou = False
    erros = 0
    quantas_faltam = **XX**

    print(letras_corretas)

    #enquanto(True) -> é como ele lê o que está embaixo
    while(not enforcou and not acertou):
        tentativa = str(input(('Qual letra? '))).lower().strip()

        print('Faltam {} tentativas'.format(quantas_faltam))

        if tentativa in palavra_secreta:
            index = 0
            for letra in palavra_secreta:
                if tentativa == letra:
                    letras_corretas[index] = letra
                index += 1

        else:
            erros += 1
        enforcou = erros == 7
        acertou = '_' not in letras_corretas
        print(letras_corretas)

    if acertou:
        print('Você ganhou!')
    else:
        print('Você perdeu!')
    print('Fim do jogo')

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

Olá Federico!

Para alinharmos isso eu modifiquei e fiz algumas implementações no código, segue o resultado do mesmo:

def jogar():
    print('***************')
    print('BEM VINDO AO JOGO DA FORCA!')
    print('***************')

    palavra_secreta = 'cadeira'

    letras_corretas = ['_'] * len(palavra_secreta)

    enforcou = False
    acertou = False
    erros = 0
    total_tentativas = 7  # Número total de tentativas permitidas
    quantas_faltam = total_tentativas  # Inicializa o número de tentativas restantes

    print(letras_corretas)

    while not enforcou and not acertou:
        tentativa = str(input('Qual letra? ')).lower().strip()

        print('Faltam {} tentativas'.format(quantas_faltam))

        if tentativa in palavra_secreta:
            for i in range(len(palavra_secreta)):
                if palavra_secreta[i] == tentativa:
                    letras_corretas[i] = tentativa
        else:
            erros += 1
            quantas_faltam = total_tentativas - erros

        enforcou = erros == total_tentativas
        acertou = '_' not in letras_corretas
        print(' '.join(letras_corretas))

    if acertou:
        print('Você ganhou!')
    else:
        print('Você perdeu!')
    print('Fim do jogo')

if __name__ == '__main__':
    jogar()

Sendo assim deixo as informações do que foi feito no mesmo, Frederico

Com base no seu código, adicionamos duas partes importantes para controlar as tentativas do jogador no jogo da forca. Primeiro, estabelecemos o número máximo de tentativas que o jogador pode fazer antes de perder. Isso é representado pela variável total_tentativas, que inicialmente é definida como 7. Essencialmente, o jogador tem sete chances para adivinhar corretamente a palavra secreta.

A segunda adição é a variável quantas_faltam, que representa o número de tentativas restantes em qualquer ponto do jogo. Inicializamos quantas_faltam com o mesmo valor de total_tentativas no início do jogo, ou seja, 7 tentativas disponíveis. Esta variável é atualizada a cada erro do jogador, subtraindo o número de erros de total_tentativas. Dessa forma, o jogador sempre sabe quantas tentativas ainda possui antes de perder.

Juntas, essas adições permitem um melhor controle e comunicação sobre o número de tentativas disponíveis, tornando o jogo mais inormativo e desafiador, implantando melhor a sua ideia.

Acho que essas adições podem atender ao que você queria.

Espero ter ajudado e reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software