1
resposta

Duvida

Sobre o calculo dos pontos, o professor colocou a condição dentro do bloco ELSE, mas testei aqui e fiz fora do bloco e o resultado deu o mesmo resultado. É necessário colocar o calculo dos ponto dentro do bloco ELSE?

veja o meu código:

import random

print('*********************************')
print('Bem vindo ao jogo de adivinhação!')
print('*********************************')

# variavel fixa, onde será comparado com o número do jogador
numero_secreto = random.randrange(1, 101)
total_de_tentativas = 0
pontos = 1000

print('Qual nível de dificuldade?')
print('(1) Fácil (2) Médio (3) Difícil')

nivel = int(input('Define o nível: '))

if nivel == 1:
    total_de_tentativas = 20
elif nivel == 2:
    total_de_tentativas = 10
else:
    total_de_tentativas = 5


for rodada in range(1, total_de_tentativas + 1):
    print(f'Rodada {rodada} de {total_de_tentativas}')

    # Variavel de comparação, onde o jogador irá colocar o número que será comparado com a variavel fixa (número_secreto)
    chute = int(input('Digite um número entre 1 e 100: '))

    if chute < 1 or chute > 100:
        print('Número invalido! Você deve digitar um número entre 1 e 100')
        rodada -= rodada
        continue

    # condição das variaveis.
    acertou = chute == numero_secreto
    maior = chute > numero_secreto
    menor = chute < numero_secreto

    # bloco que compara a variavel fixa e a varaivel do jogador
    if acertou:
        print(f'Você acertou e fez {pontos} pontos! ')
        break
    else:
        # bloco que irá comparar e indicar se o número do jogar colocou foi maior ou menor da variavel fixa (número_secreto)
        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 !')
1 resposta

Bom dia, Geferson!

Não é necessário o else para fazer a contagem de pontos, já que se ele acertar o código para no bloco if acertou e quebra o loop naquele instante. Já que esse if quebra o loop, podemos considerar qualquer coisa que bem após ele como sendo o seu else. Dessa forma, é possível retirar também o else que precede o bloco if maior/elif menor sem prejudicar o funcionamento do seu código. Quanto a legibilidade do código, acredito que a adição desses blocos possa deixar melhor, visto que está iniciando o estudo em linguagens de programação poderá ter problemas em entender o que está acontecendo.

Espero ter ajudado! Um abraço!