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

Resolução de Atividades - 11 Jogo de adivinhar o número

import os
import random

def limpar_terminal():

    input ("Digite qualquer tecla para continuar: ")
    os.system ('cls' if os.name == 'nt' else 'clear')

def sorteador_numero (limite_inferior, limite_superior):

    numero = random.randint (limite_inferior, limite_superior)
    return numero

def main():

    limite_superior = 100
    limite_inferior = 1
    numero_escolhido = sorteador_numero (limite_inferior, limite_superior)

    print ("Seja bem vindo ao jogo de adivinhar o número secreto\n")
    
    while True:

        try:

            usuario_escolha = int (input (f"Digite um número entre {limite_inferior} a {limite_superior}: ").strip(" "))

            if usuario_escolha > limite_superior or usuario_escolha < limite_inferior:

                print ("Atenção, digite números apenas dentro do intervalo determinado!")
                limpar_terminal()
                

        except ValueError:

            print ("Atenção, digite apenas números!")
            limpar_terminal()

        if usuario_escolha > numero_escolhido:

            print ("O número secreto é menor!")
            limpar_terminal()

        elif usuario_escolha < numero_escolhido:

            print ("O número secreto é maior!")
            limpar_terminal()
        
        else:

            print (f"Parabéns, você acertou. O número secreto é o {numero_escolhido}")

            if input ("Deseja jogar novamente? (s/n): ").lower() == "s":

                limpar_terminal()
                main()

            break

main() 
1 resposta
solução!

Oi, Victor! Como vai?

Do jeito que você explicou, ficou bem legal a organização com funções como limpar_terminal e sorteador_numero, além do uso de try/except para tratar entradas inválidas. Isso mostra cuidado com a experiência de quem joga e um bom domínio de fluxo com while True.

Uma dica interessante para o futuro é usar break e continue para controlar melhor o fluxo dentro do loop, evitando executar trechos desnecessários após erros de entrada. Veja este exemplo:


while True:
    try:
        numero = int(input("Digite um numero: "))
    except ValueError:
        print("Digite apenas numeros")
        continue

    if numero < 1 or numero > 10:
        print("Fora do intervalo")
        continue

    print("Numero valido")
    break

Esse código usa continue para voltar ao início do loop quando há erro ou valor inválido, evitando que o restante do código seja executado.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!