0Pricing
C++ Academy · Aula

Um jogo de adivinhação de números

Implemente um pequeno jogo interativo de adivinhação de números aleatórios

Um jogo de adivinhação de números é uma aula grátis de C++ Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C++ Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C++ Academy inclui 4 aulas no total.

Plano do jogo

O programa escolhe um número secreto de 1 a 100. O usuário tenta adivinhá-lo; o programa diz "alto demais" ou "baixo demais". A vitória acontece após um número fixo de tentativas ou quando o número é adivinhado corretamente.

Cabeçalhos necessários

Para números aleatórios e E/S.

#include <iostream>
#include <random>
#include <string>

Gerando o segredo

Use os recursos modernos de <random>. Inicialize a semente uma única vez.

std::random_device rd;
std::mt19937 engine(rd());
std::uniform_int_distribution<int> dist(1, 100);
int secret = dist(engine);

Laço principal

Solicite a entrada, leia, compare e repita até acertar.

int guess;
int attempts = 0;
while (true) {
    ++attempts;
    std::cout << "Guess (1-100): ";
    if (!(std::cin >> guess)) break;
    if (guess == secret) {
        std::cout << "Got it in " << attempts << " tries\n";
        break;
    }
    std::cout << (guess < secret ? "too low" : "too high") << "\n";
}

Limitando as tentativas

Adicione um número máximo de tentativas para tornar o jogo mais difícil.

const int MAX = 10;
if (attempts >= MAX) {
    std::cout << "Out of tries! It was " << secret << "\n";
    break;
}

Validando a entrada

Se o usuário digitar uma entrada não numérica, cin entra no estado de falha. Recupere-se de forma adequada.

if (!(std::cin >> guess)) {
    std::cin.clear();
    std::cin.ignore(10000, '\n');
    std::cout << "Please enter a number\n";
    continue;
}

Palpites fora do intervalo

Rejeite números fora do intervalo de 1 a 100 antes de contabilizar uma tentativa.

if (guess < 1 || guess > 100) {
    std::cout << "Out of range\n";
    --attempts;     // not a real attempt
    continue;
}

Laço de repetição

Depois que uma partida terminar, pergunte se o usuário quer jogar novamente.

std::cout << "Play again? (y/n): ";
char reply;
std::cin >> reply;
if (reply != 'y') break;

Acompanhando estatísticas

Mantenha totais entre as partidas — melhor pontuação, média de tentativas e total de vitórias.

int wins = 0;
int bestAttempts = INT_MAX;
// update inside the win branch

Personalizando o intervalo

Permita que o usuário escolha os modos fácil (1 a 10), médio (1 a 100) ou difícil (1 a 1000). Ajuste dist de acordo.

Sistema de dicas

Opcional: depois de vários palpites errados, reduza o intervalo. "É pelo menos 40."

Dividindo em funções

Refatore em generateSecret(), readGuess(), playRound() e main(). Cada função faz uma única coisa.

Verificação rápida

Qual sequência de inclusões de cabeçalhos é necessária para gerar um número aleatório moderno em C++?

Recapitulação

Um jogo de adivinhação de números reúne geração de números aleatórios, validação de entrada, laços e estado do jogo. Refatore-o em funções pequenas e adicione repetição, estatísticas e dificuldade para aprimorá-lo.

Perguntas Frequentes

A aula “Um jogo de adivinhação de números” é grátis?

Sim — o texto completo de “Um jogo de adivinhação de números” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C++ Academy, atualize para CoddyKit PRO. O curso de C++ Academy inclui 4 aulas no total.

O que vou aprender em “Um jogo de adivinhação de números”?

Implemente um pequeno jogo interativo de adivinhação de números aleatórios Você pratica C++ Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C++ Academy?

Nenhuma experiência prévia é necessária. C++ Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Um jogo de adivinhação de números”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C++ Academy?

Sim. Cada aula de C++ Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Construir uma calculadora CLI simples
  2. Ler e escrever ficheiros CSV
  3. Um jogo de adivinhação de números
  4. Um contador de frequência de palavras
← Voltar para C++ Academy