0Pricing
C++ Academy · Leçon

Un jeu de devinettes numériques

Implémenter un petit jeu interactif de devinettes numériques avec des nombres aléatoires

Un jeu de devinettes numériques est une leçon C++ Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C++ Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C++ Academy comprend 4 leçons au total.

Plan du jeu

Le programme choisit un nombre secret entre 1 et 100. L'utilisateur propose un nombre ; le programme indique s'il est « trop grand » ou « trop petit ». La partie est gagnée après un nombre fixe de tentatives ou lorsque le nombre est trouvé.

En-têtes requis

Pour les nombres aléatoires et les entrées-sorties.

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

Générer le nombre secret

Utilisez les fonctionnalités modernes de <random>. Initialisez la graine une seule fois.

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

Boucle principale

Affichez l'invite, lisez la valeur, comparez, puis recommencez jusqu'à ce que la réponse soit correcte.

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";
}

Limiter les tentatives

Ajoutez un nombre maximal d'essais pour rendre le jeu plus difficile.

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

Valider l'entrée

Si l'utilisateur saisit une valeur non numérique, cin passe en état d'échec. Rétablissez la situation proprement.

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

Propositions hors limites

Rejetez les nombres qui se trouvent en dehors de l'intervalle 1..100 avant de compter une tentative.

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

Boucle de rejouer

À la fin d'une partie, demandez à l'utilisateur s'il souhaite rejouer.

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

Suivre les statistiques

Conservez les totaux entre les parties : meilleur score, nombre moyen de tentatives et nombre total de victoires.

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

Personnaliser l'intervalle

Laissez l'utilisateur choisir le mode facile (1..10), intermédiaire (1..100) ou difficile (1..1000). Ajustez dist en conséquence.

Système d'indices

Facultatif : après plusieurs propositions incorrectes, réduisez l'intervalle. « Il est au moins égal à 40. »

Répartir le code en fonctions

Réorganisez le code en generateSecret(), readGuess(), playRound() et main(). Chaque fonction doit avoir une seule responsabilité.

Vérification rapide

Quelle suite de directives d'inclusion d'en-têtes faut-il pour générer un nombre aléatoire avec le C++ moderne ?

Récapitulatif

Un jeu de devinettes numériques réunit la génération de nombres aléatoires, la validation des entrées, les boucles et l'état du jeu. Réorganisez le code en petites fonctions et ajoutez la possibilité de rejouer, des statistiques et plusieurs niveaux de difficulté pour le perfectionner.

Questions Fréquemment Posées

La leçon « Un jeu de devinettes numériques » est-elle gratuite ?

Oui — le texte complet de « Un jeu de devinettes numériques » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C++ Academy, passe à CoddyKit PRO. Le cours C++ Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Un jeu de devinettes numériques » ?

Implémenter un petit jeu interactif de devinettes numériques avec des nombres aléatoires Tu pratiques C++ Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer C++ Academy ?

Aucune expérience préalable n'est requise. C++ Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Un jeu de devinettes numériques » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon C++ Academy ?

Oui. Chaque leçon C++ Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Construire une calculatrice CLI simple
  2. Lire et écrire des fichiers CSV
  3. Un jeu de devinettes numériques
  4. Un compteur de fréquences des mots
← Retour à C++ Academy