Módulo 14 - Lógica aplicada no mundo real

O jogo da adivinhação: seu primeiro jogo completo

8 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 02/07/2026

O que você vai aprender

  • Montar o laço de tentativas que roda até o palpite acertar o segredo.
  • Dar dicas de maior ou menor comparando palpite e número secreto.
  • Contar as tentativas com o contador dentro do laço.
  • Aplicar a estratégia do meio, que acerta 1 a 100 em até 7 palpites.

As regras do jogo (e por que ele ensina tanto)

Todo curso de lógica do mundo passa pelo jogo da adivinhação, e não é por tradição vazia: ele é o menor programa que junta TODAS as peças fundamentais de uma vez. Tem variável guardando o segredo, entrada e saída conversando com o jogador, comparação decidindo a dica, laço sustentando a partida e contador medindo o desempenho. É também o primeiro programa que dá vontade de mostrar para alguém, e essa vontade importa: sistema que diverte é sistema que você termina.

As regras cabem em três linhas. O programa escolhe um número secreto entre 1 e 100. O jogador dá um palpite; se errar, recebe a dica “o secreto é maior” ou “o secreto é menor” e chuta de novo. Quando acerta, o programa anuncia a vitória com o total de tentativas. Repare que a dica é o coração do jogo: sem ela, seria loteria pura, com até 100 chutes no escuro. Com ela, cada erro vira informação, e é aí que a lógica entra em cena.

O jogo inteiro em pseudocódigo

O programa abaixo é o jogo completo. A condição do laço usa o operador “diferente de” (escrito <>), que você conheceu no módulo 6: enquanto o palpite for diferente do secreto, a partida continua. Dentro do laço, a comparação escolhe a dica e o contador soma a tentativa. Note um detalhe de arquitetura: o primeiro palpite é lido ANTES do laço, para a condição já ter o que comparar na primeira volta.

secreto <- 42        // na versão final, um sorteio entre 1 e 100
tentativas <- 1
escreva("Chute um número de 1 a 100:")
leia(palpite)
enquanto palpite <> secreto faça   // <> significa "diferente de"
  se palpite < secreto então
    escreva("O secreto é MAIOR. Tente de novo:")
  senão
    escreva("O secreto é MENOR. Tente de novo:")
  fim
  leia(palpite)
  tentativas <- tentativas + 1
fim
escreva("Acertou! O número era ", secreto, ". Total: ", tentativas, " tentativas.")
// Palpites 50, 30, 42: dica MENOR, dica MAIOR e vitória em 3 tentativas.

O jogo da adivinhação: laço de tentativas, dica por comparação e contador de desempenho.

🎮 Jogo da aula

Monte a partida

Os passos do jogo da adivinhação vêm embaralhados. Toque na ordem em que o programa os executa, do primeiro ao último.

    Dois cuidados de quem já sofreu com esse jogo. Primeiro: a leitura do palpite DENTRO do laço é obrigatória; sem ela, o programa compara o mesmo palpite para sempre, e você reencontra o laço infinito do módulo 9. Segundo: o contador começa em 1, não em 0, porque o primeiro palpite já foi dado antes do laço. Rodar um teste de mesa com uma partida curta (palpites 50 e 42, por exemplo) confirma os dois pontos em menos de um minuto.

    A estratégia do meio: vencendo com lógica

    Agora troque de lado: se você fosse o jogador, qual seria a melhor estratégia? Chutar 1, 2, 3, 4 em sequência funciona, mas pode levar 100 tentativas. O caminho esperto é chutar sempre o MEIO do intervalo possível. Comece com 50: a dica “é maior” descarta de uma vez os números de 1 a 50, e o intervalo cai pela metade. Chute o meio do que sobrou (75), e a metade da metade some. Seguindo assim, 100 números viram 50, 25, 13, 7, 4, 2 e 1: no máximo 7 palpites para acertar qualquer segredo.

    PalpiteDica do programaIntervalo que sobra
    50é MAIOR51 a 100
    75é MENOR51 a 74
    62é MAIOR63 a 74
    68é MAIOR69 a 74
    71é MAIOR72 a 74
    73acertou!partida fechada em 6 palpites

    Uma partida real contra o secreto 73: cada palpite pelo meio corta o intervalo restante pela metade.

    Essa ideia tem nome e fama: é a intuição da busca binária, uma das técnicas mais usadas da computação. É assim que você procura um nome na lista de contatos sem ler todos, e é assim que sistemas acham um registro no meio de milhões em frações de segundo. Dobrar o tamanho do problema custa apenas UM palpite a mais: de 1 a 200 são 8 palpites, de 1 a 1000, apenas 10. Guarde essa sensação de corte pela metade; ela reaparece em qualquer carreira que envolva dados.

    Teste rápido

    Por que chutar o meio do intervalo é melhor que chutar 1, 2, 3 em sequência?

    Perguntas frequentes

    Como o programa sorteia o número secreto de verdade?
    As linguagens reais têm uma função de número aleatório (random, em geral) que devolve um valor dentro do intervalo pedido. No pseudocódigo do curso, fixamos o secreto para o teste de mesa ficar previsível. A lógica do jogo não muda em nada: só a primeira linha troca.
    Por que o primeiro palpite é lido antes do laço?
    Porque a condição do ENQUANTO compara palpite com secreto já na primeira volta, e comparar uma variável que nunca recebeu valor é um erro clássico. Ler antes garante que a condição sempre tem material para trabalhar. É o mesmo padrão do validador da primeira aula deste módulo.
    O que acontece se eu esquecer o leia(palpite) dentro do laço?
    O laço compara o mesmo palpite para sempre e nunca termina: é o laço infinito do módulo 9 em pessoa. O sintoma é a mesma dica repetida sem parar. A regra prática: todo laço precisa de algo que mude a condição por dentro, e aqui esse algo é a nova leitura.
    Dá para limitar o número de tentativas do jogador?
    Dá, e é um ótimo exercício: acrescente à condição do laço um limite, como “enquanto palpite <> secreto E tentativas < 10”. Depois do laço, um SE decide entre a mensagem de vitória e a de derrota. É o mesmo padrão do caixa eletrônico da próxima aula, que bloqueia o cartão após 3 senhas erradas.
    A estratégia do meio funciona se o intervalo não for 1 a 100?
    Funciona em qualquer intervalo ordenado. A conta é sempre a mesma: o número de palpites necessários é quantas vezes você consegue dividir o tamanho do intervalo por 2 até sobrar 1. De 1 a 1000 são 10 palpites; de 1 a um milhão, apenas 20. O crescimento é absurdamente lento, e é isso que a torna poderosa.
    Esse jogo tem alguma utilidade fora do estudo?
    O laço de tentativas com dica aparece em softwares reais o tempo todo: é a senha com contagem de erros, o afinador de instrumento que diz “aperte mais” ou “solte”, o teste que estreita um defeito entre duas versões de um programa. Você treinou num jogo o padrão que vai reusar em ferramentas sérias.

    Fontes

    Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.