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 branchPersonalizando 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
- Construir uma calculadora CLI simples
- Ler e escrever ficheiros CSV
- Um jogo de adivinhação de números
- Um contador de frequência de palavras