Programador Leigo
Projetos 7 min leitura 16 MAR 2026

Como criar um jogo de adivinhação em Python

Crie um jogo onde o computador escolhe um número e você tenta adivinhar. Seu primeiro projeto completo em Python.


O que vamos construir?

Um jogo simples: o computador escolhe um número aleatório entre 1 e 100, e você tenta adivinhar. A cada tentativa, ele diz se o número é maior ou menor. No final, mostra quantas tentativas foram necessárias.

É um projeto clássico para quem está começando porque usa tudo que você aprendeu na trilha Python do Zero: variáveis, condicionais, loops e input do usuário.

Gerando um número aleatório

Python tem um módulo embutido chamado random que gera números aleatórios. Vamos usar a função randint():

import random

numero_secreto = random.randint(1, 100)
print(numero_secreto)  # so para testar, depois removemos

A função randint(1, 100) retorna um número inteiro entre 1 e 100, incluindo os dois extremos.

Pedindo o palpite do jogador

Agora precisamos pedir que o jogador digite um número. Lembre-se: input() sempre retorna uma string, então precisamos converter para inteiro com int():

palpite = int(input("Digite seu palpite: "))

Mas e se a pessoa digitar uma letra em vez de um número? O programa vai dar erro. Vamos tratar isso:

try:
    palpite = int(input("Digite seu palpite: "))
except ValueError:
    print("Digite apenas numeros!")

Comparando o palpite

Com if, elif e else, verificamos se o palpite é maior, menor ou igual ao número secreto:

if palpite < numero_secreto:
    print("Muito baixo! Tente um numero maior.")
elif palpite > numero_secreto:
    print("Muito alto! Tente um numero menor.")
else:
    print("Parabens! Voce acertou!")

Repetindo com um loop

O jogo precisa continuar até o jogador acertar. Para isso, usamos um loop while:

import random

numero_secreto = random.randint(1, 100)
tentativas = 0
acertou = False

print("=== Jogo de Adivinhacao ===")
print("Pensei em um numero entre 1 e 100.")
print()

while not acertou:
    try:
        palpite = int(input("Seu palpite: "))
    except ValueError:
        print("Digite apenas numeros!")
        continue

    tentativas += 1

    if palpite < numero_secreto:
        print("Muito baixo! Tente um numero maior.")
    elif palpite > numero_secreto:
        print("Muito alto! Tente um numero menor.")
    else:
        acertou = True
        print(f"Parabens! Voce acertou em {tentativas} tentativa(s)!")

Vamos entender cada parte:

  • tentativas conta quantas vezes o jogador tentou
  • acertou começa como False e vira True quando o jogador acerta
  • continue pula para a próxima iteração quando o input é inválido
  • O loop roda enquanto acertou for False

Adicionando limites de tentativas

Para deixar o jogo mais desafiador, podemos limitar o número de tentativas:

import random

numero_secreto = random.randint(1, 100)
max_tentativas = 7
tentativas = 0

print("=== Jogo de Adivinhacao ===")
print(f"Pensei em um numero entre 1 e 100. Voce tem {max_tentativas} tentativas.")
print()

while tentativas < max_tentativas:
    try:
        palpite = int(input(f"Tentativa {tentativas + 1}/{max_tentativas}: "))
    except ValueError:
        print("Digite apenas numeros!")
        continue

    tentativas += 1

    if palpite < numero_secreto:
        print("Muito baixo!")
    elif palpite > numero_secreto:
        print("Muito alto!")
    else:
        print(f"Parabens! Voce acertou em {tentativas} tentativa(s)!")
        break
else:
    print(f"Suas tentativas acabaram! O numero era {numero_secreto}.")

A novidade aqui é o else do while: ele executa quando o loop termina normalmente (sem break). Ou seja, se o jogador não acertou em nenhuma tentativa.

Dicas para ir além

Agora que você tem o jogo funcionando, tente melhorar por conta própria:

  • Níveis de dificuldade: fácil (1-50, 10 tentativas), médio (1-100, 7 tentativas), difícil (1-200, 7 tentativas)
  • Jogar novamente: perguntar "Quer jogar de novo?" ao final
  • Placar: salvar a melhor pontuação em um arquivo

Conclusão

Com menos de 30 linhas de código, você criou um jogo completo e funcional. Esse projeto usou variáveis, input, condicionais, loops e tratamento de erros — tudo junto. No próximo artigo, vamos criar um quiz interativo onde você pode criar suas próprias perguntas.

Continue lendo

Compartilhar