C++ Academy · Lesson

A Number Guessing Game

Implement a small interactive number guessing game with random numbers.

Lesson 3 of 414 steps

A Number Guessing Game is a free C++ Academy lesson on CoddyKit. This is lesson 3 of 4. Any 3 lessons of this learning path are free to read in full — after that, CoddyKit PRO unlocks every lesson, plus hands-on practice with a built-in code editor and a 24/7 AI tutor. It is part of the C++ Academy learning path, and your progress syncs across the web and the CoddyKit app. The C++ Academy course includes 4 lessons in total.

Game Plan

The program picks a secret number 1..100. The user guesses; the program says "too high" or "too low." Win after a fixed number of attempts or when guessed correctly.

Required Headers

For random numbers and I/O.

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

Generating the Secret

Use the modern <random> facilities. Seed once.

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

Main Loop

Prompt, read, compare, repeat until correct.

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

Limiting Attempts

Add a maximum number of tries to make the game harder.

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

Validating Input

If the user types non-numeric input, cin goes into fail state. Recover gracefully.

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

Out-of-Range Guesses

Reject numbers outside 1..100 before counting an attempt.

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

Replay Loop

After a game ends, ask if the user wants to play again.

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

Tracking Statistics

Keep totals across games — best score, average attempts, total wins.

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

Customizing the Range

Let the user pick easy (1..10), medium (1..100), or hard (1..1000) modes. Adjust dist accordingly.

Hint System

Optional: after several wrong guesses, narrow the range. "It is at least 40."

Splitting into Functions

Refactor into generateSecret(), readGuess(), playRound(), and main(). Each function does one thing.

Quick Check

Which sequence of header includes is needed for a modern C++ random number?

Recap

A number guessing game ties together random number generation, input validation, loops, and game state. Refactor into small functions and add replay, stats, and difficulty for polish.

Free to start

Learn C++ with an AI tutor — free

Write and run real code in your browser, get instant help from a 24/7 AI tutor, and pick up where you left off on the web or in the app.

Courses
51
Lessons
203

Frequently Asked Questions

Is the “A Number Guessing Game” lesson free?

Yes — any 3 lessons of the C++ Academy learning path, including “A Number Guessing Game”, are free to read in full here on the web. After that, CoddyKit PRO unlocks every lesson, plus interactive practice with a built-in code editor and a 24/7 AI tutor. The C++ Academy course includes 4 lessons in total.

What will I learn in “A Number Guessing Game”?

Implement a small interactive number guessing game with random numbers. You practise C++ Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start C++ Academy?

No prior experience is required. C++ Academy on CoddyKit is structured for beginners through advanced learners, so you can start here or from the beginning and move at your own pace. This is lesson 3 of 4.

How long does the “A Number Guessing Game” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this C++ Academy lesson?

Yes. Every C++ Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. Building a Simple Calculator CLI
  2. Reading and Writing CSV Files
  3. A Number Guessing Game
  4. A Word Frequency Counter
← Back to C++ Academy