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

[Projeto] Projeto 11 - Jogo de adivinhar o número

Minha solução ficou um pouco diferente:

import random

LIMITE_MAXIMO = 100

def escolher_numero():
    return random.randint(1,LIMITE_MAXIMO)
    

def coletar_input():
    try:
        chute = input(f"Tente adivinhar o número (1-{LIMITE_MAXIMO}) ou digite sair: ").lower()
        valor = int(chute)
        if valor < 1 or valor > LIMITE_MAXIMO:
            print(f"Atenção! o numero deve estar entre 1 e {LIMITE_MAXIMO}.")
            return None
        return valor
    
    except ValueError:
        if chute != "sair":
            print("Ops! Isso não é um numero valido")
            return None
        else:
            return 0
    
def validar_tentativa():
    numero = escolher_numero()
    tentativas = 0
    while True:
        tentativa = coletar_input()
        
        if tentativa is not None and tentativa > 0:
            tentativas+=1
            if tentativa > numero:
                print("Muito alto! Tente novamente:")
                
            elif tentativa < numero:
                print("Muito baixo! Tente novamente:")
                
            else:
                
                print(f"Parabéns! voce acertou o numero {numero} com {tentativas} tentativas")
                continuar = input("Deseja jogar novamente? (s/n): ").lower()

                if continuar != "s":
                    break
                else: 
                    tentativas = 0
                    numero = escolher_numero()
        elif tentativa == 0:
            print(f"voce tentou {tentativas} e o numero secreto era {numero}")
            break

validar_tentativa()
1 resposta
solução!

Oi, Alef! Como vai?

Agradeço por compartilhar seu.

Gostei bastante da forma como você organizou o projeto em funções separadas, isso deixa o código mais legível e fácil de manter. Também chama atenção o tratamento de erros com try/except e a opção de sair digitando "sair", que melhora a experiência de quem joga.

Uma dica interessante para o futuro é usar um loop controlado por condição em vez de while True, deixando o fluxo ainda mais claro.


continuar = True

while continuar:
    numero = random.randint(1, 100)
    tentativa = int(input("Digite um numero: "))
    if tentativa == numero:
        print("Acertou")
        continuar = False

Esse código usa uma variável booleana para controlar o loop, facilitando entender quando o jogo termina.

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