4
respostas

Adicionando mensagem que revela numero_secreto caso jogador não acerte em nenhuma tentativa.

*Olá pessoal, fiz um laço "IF" para que revele ao jogador o numero_secreto caso ele não acerte nenhuma tentiva, gostaria de saber se o jeito que fiz é valido e se há outra maneira de fazer esse mesmo laço !!? *

Segue meu código até o momento :

# IMPORTANDO BIBLIOTECA QUE GERA  NUMEROS ALEATORIOS
import random

# BOAS VINDAS AO JOGO
print("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@")
print("Bem vindo ao jogo de adivinhação")
print("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@")

# CRIAÇÃO DE VARIAVEL DE NUMEROS ALEATORIOS E TOTAL DE TENTIVAS
numero_secreto = int(random.randrange(1, 101))
total_de_tentativas = 3
pontos = 1000

# ESCOLHENDO A DIFICULDADE DO JOGO
print("--Qual nível de dificuldade-- ? ", numero_secreto)
print("(1) Fácil - (2) Médio - (3) Dificil")

nivel = int(input("Selecione o NÍVEL :"))

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



# SISTEMA PARA USUARIO ESCOLHER O NUMERO E TENTAR ADVINHAR
for rodada in range(1, total_de_tentativas + 1):
    print("Tentativa {} de {} ".format(rodada, total_de_tentativas))
    chute_str = input("Digite um numero entre 1 e 100:")
    print("Voce digitou ", chute_str)
    chute = int(chute_str)

    if(chute < 1 or chute > 100):
        print("Voce deve digitar um numero entre 1 e 100 !")
        continue


    acertou = chute == numero_secreto
    chute_maior = chute > numero_secreto
    chute_menor = chute < numero_secreto

    if (acertou):
        print("Voce acertou e fez {} pontos !!".format(pontos))
        break
    else:
        if(chute_maior):
            print("Voce errou !! Seu chute foi maior que o numero secreto ")
        if(chute_menor):
            print("Voce errou !! Seu chute foi menor que o numero secreto")
        pontos_perdidos = abs(numero_secreto - chute)  # abs é uma função built in para transformar numeros negativos em numero "ABSOLUTOS"
        pontos = pontos - pontos_perdidos
        continue


if(acertou == False):
        print("Voce errou todos as tentativas, o numero secreto era:", numero_secreto)


print("FIM DO JOGO HAHA")








# INPUT - Sempre recebe STR, então dependendo do caso temos que transformar em INT ou FLOAT.
4 respostas

Parte do código em que me refiro :

if(acertou == False):
        print("Voce errou todos as tentativas, o numero secreto era:", numero_secreto)

Mano.

Eu fiz na ideia de quando rodada == numero_de_tentativas então fizesse o print.

if(total_de_tentativas == rodada):
        print("Voce errou todos as tentativas, o numero secreto era: {}".format (numero_secreto))

E veja, no print você pode trazer a função format também.

Muito bom Álvaro, não havia pensado nesse hipótese ! Obrigado por compartilhar, testei aqui e funciona 100% !

Ficou bom mesmo Álvaro.