2
respostas

Falha na contagem dos últimos pontos perdidos

Na verdade não é dúvida, só uma constatação. Como colocarmos o trecho (1) abaixo antes da contabilização de pontos em (2) 1) 'if(rodada == total_tentativas): print("O numero secreto era {}. Voce fez {} pontos".format(numero_secreto, pontos))"

2) "pontos = pontos - pontos_perdidos"

Os pontos perdidos pelo último chute errado acabam não sendo contabilizados na pontuação final do jogador.

2 respostas

Alexandre, tudo bom? Você pode sugerir essa alteração na página onde viu esse problema, no menu do todo direito. Lá tem um item "SUGERIR ALTERAÇÃO" que vai direto para a equipe da Alura avaliar.

Olá Alexandre.

Entendi o que você explicou e está certo o seu raciocínio, porem na solução que o professor propôs até a aula 7, não é exibido a pontuação caso o jogador perca, então não tem problema o calculo ser feito nessa ordem.

    if(acertou):
        print("Você acertou e fez {} pontos!".format(pontos))
        break
    else:
        if(maior):
            print("Você errou! O seu chute foi maior do que o número secreto.")
        elif(menor):
            print("Você errou! O seu chute foi menor do que o número secreto.")
        pontos_perdidos = abs(numero_secreto - chute)
        pontos = pontos - pontos_perdidos

print("Fim do jogo")

Bem legal sua observação, acho que seria legal tentar implementar para incluir isso que você propôs.

Uma sugestão seria declarar a variável acertou fora do for do jogo e depois do for verificar se a variável acertou tem valor Falso e se tiver imprimir a pontuação que jogador teria feito caso tivesse acertado nessa rodada.

numero_secreto = random.randrange(1,101)
total_de_tentativas = 0
pontos = 1000
acertou = False

Primeiro fazer a declaração no bloco onde temos as outras variáveis.

......
    if(acertou):
        print("Você acertou e fez {} pontos!".format(pontos))
        break
    else:
        if(maior):
            print("Você errou! O seu chute foi maior do que o número secreto.")
        elif(menor):
            print("Você errou! O seu chute foi menor do que o número secreto.")
        pontos_perdidos = abs(numero_secreto - chute)
        pontos = pontos - pontos_perdidos

if not acertou:
    print("Você não acertou mas teria feito {} pontos!".format(pontos))

E finalmente um if verificando em que status o jogo terminou.

É sempre bom tentar implementar coisas diferente do apresentado para exercitar seus conhecimentos.

Bons estudos.