0Pricing
C++ Academy · Lezione

Un gioco di indovinare i numeri

Implementi un piccolo gioco interattivo per indovinare i numeri usando numeri casuali

Un gioco di indovinare i numeri è una lezione C++ Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C++ Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C++ Academy include 4 lezioni in totale.

Piano di gioco

Il programma sceglie un numero segreto da 1 a 100. L'utente prova a indovinarlo; il programma indica se il tentativo è "troppo alto" o "troppo basso". Si vince dopo un numero fisso di tentativi o quando si indovina il numero.

Header necessari

Servono per i numeri casuali e l'I/O.

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

Generare il numero segreto

Utilizzi le funzionalità moderne di <random>. Inizializzi il generatore una sola volta.

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

Ciclo principale

Mostri il prompt, legga l'input, lo confronti e ripeta finché il numero non è corretto.

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

Limitare i tentativi

Aggiunga un numero massimo di tentativi per rendere il gioco più difficile.

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

Convalidare l'input

Se l'utente digita un input non numerico, cin entra nello stato di errore. Gestisca la situazione in modo appropriato.

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

Tentativi fuori intervallo

Rifiuti i numeri al di fuori dell'intervallo da 1 a 100 prima di conteggiare il tentativo.

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

Ciclo di rigioco

Al termine di una partita, chieda all'utente se desidera giocare di nuovo.

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

Tenere traccia delle statistiche

Conservi i totali tra una partita e l'altra: miglior punteggio, media dei tentativi e vittorie totali.

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

Personalizzare l'intervallo

Permetta all'utente di scegliere la modalità facile (da 1 a 10), media (da 1 a 100) o difficile (da 1 a 1000). Adatti dist di conseguenza.

Sistema di suggerimenti

Facoltativo: dopo diversi tentativi errati, restringa l'intervallo. "È almeno 40."

Suddividere in funzioni

Rifattorizzi il codice in generateSecret(), readGuess(), playRound() e main(). Ogni funzione svolge un solo compito.

Verifica rapida

Quale sequenza di inclusioni degli header è necessaria per generare un numero casuale in C++ moderno?

Riepilogo

Un gioco di indovinare i numeri riunisce generazione di numeri casuali, convalida dell'input, cicli e stato del gioco. Rifattorizzi il codice in funzioni piccole e aggiunga rigioco, statistiche e livelli di difficoltà per rifinirlo.

Domande Frequenti

La lezione «Un gioco di indovinare i numeri» è gratuita?

Sì — il testo completo di «Un gioco di indovinare i numeri» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C++ Academy, passa a CoddyKit PRO. Il corso C++ Academy include 4 lezioni in totale.

Cosa imparerò in «Un gioco di indovinare i numeri»?

Implementi un piccolo gioco interattivo per indovinare i numeri usando numeri casuali Eserciti C++ Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C++ Academy?

Non è richiesta alcuna esperienza precedente. C++ Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Un gioco di indovinare i numeri»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C++ Academy?

Sì. Ogni lezione C++ Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Costruire una semplice calcolatrice CLI
  2. Lettura e scrittura di file CSV
  3. Un gioco di indovinare i numeri
  4. Un contatore della frequenza delle parole
← Torna a C++ Academy