1
resposta

Esse código que eu fiz tem alguns recursos a mais do que o do exemplo. É um bom código ? gostaria de sugestões pra melhorar...

from random import randint

print("---------------------------------")
print("Bem vindo ao jogo de adivinhação!")
print("---------------------------------")

# váriavel principal

tentativas = 3 
rodada = 1

while tentativas >= rodada:

    # Declarando variável principal
    numero_secreto = randint(0, 100)

    # Entrada do usuário
    print("\nTentativa {0} de 3 ".format(rodada, tentativas))
    chute = int(input("Digite o seu número: "))

    # variáveis secundárias
    acertou = chute == numero_secreto
    maior = chute > numero_secreto
    menor = chute < numero_secreto
    quase = chute == numero_secreto - 1 or chute == numero_secreto + 1
    errou = chute != numero_secreto

    # respostas ao usuário
    if acertou:
        print("Você acertou o número secreto, Parabéns!")
        break
    else:
        if maior and rodada != tentativas:
            print("ERROU!\nDica: O valor digitado é maior que o número secreto!")
        elif menor and rodada != tentativas:
            print("ERROU!\nDica: O valor digitado é menor que o número secreto!")
        if quase and rodada != tentativas:
            print("Dica bônus: Você chegou muito perto de acertar! Tente outra vez!")
        if rodada == tentativas:
            print("Suas tentativas acabaram!\n")
        if errou:
            rodada = rodada + 1
        if errou and rodada == tentativas + 1:
            print("_____________GAME OVER_____________")
1 resposta

Bom Dia Matheus,

O código funciona perfeitamente e está muito bonito e fácil de entender, além de que as novas funcionalidades ficaram bem legais. Deixo as minhas ressalvas principalmente quanto algumas questões da lógica como comentários a seguir e deixei um exemplo de como eu escreveria aqui:

from random import randint

print("---------------------------------")
print("Bem vindo ao jogo de adivinhação!")
print("---------------------------------")

# váriavel principal

tentativas = 3 
rodada = 1

while tentativas >= rodada: #ao invés de verificar se é maior ou igual verifica só se é maior aí não precisaria de todos as verificações nos ifs

    # Declarando variável principal
    numero_secreto = randint(0, 100)

    # Entrada do usuário
    print("\nTentativa {0} de 3 ".format(rodada, tentativas))
    chute = int(input("Digite o seu número: "))

    # variáveis secundárias
    acertou = chute == numero_secreto
    maior = chute > numero_secreto
    menor = chute < numero_secreto
    quase = chute == numero_secreto - 1 or chute == numero_secreto + 1
    errou = chute != numero_secreto #essa variável não é necessária pois você já está verificando se acertou

    # respostas ao usuário
    if acertou:
        print("Você acertou o número secreto, Parabéns!")
        break
    else:
        if maior and rodada != tentativas:
            print("ERROU!\nDica: O valor digitado é maior que o número secreto!")
        elif menor and rodada != tentativas:
            print("ERROU!\nDica: O valor digitado é menor que o número secreto!")
        if quase and rodada != tentativas:
            print("Dica bônus: Você chegou muito perto de acertar! Tente outra vez!")
        if rodada == tentativas:
            print("Suas tentativas acabaram!\n")
        if errou: #Essa linha não é necessária, porque o primeiro if já verifica se a pessoa acertou, então se ela entrou no else significa que errou
            rodada = rodada + 1
        if errou and rodada == tentativas + 1:
            print("_____________GAME OVER_____________")