C++ Academy · Урок

Игра «Угадай число»

Реализуйте небольшую интерактивную игру на угадывание числа со случайными числами.

Урок 3 из 414 шагов

«Игра «Угадай число»» — бесплатный урок C++ Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C++ Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C++ Academy содержит 4 уроков всего.

План игры

Программа выбирает секретное число от 1 до 100. Пользователь пытается его угадать, а программа сообщает: «слишком много» или «слишком мало». Победа наступает после фиксированного числа попыток или при правильной догадке.

Необходимые заголовочные файлы

Для генерации случайных чисел и ввода-вывода.

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

Генерация секретного числа

Используйте современные средства <random>. Инициализируйте генератор один раз.

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

Главный цикл

Выведите приглашение, считайте ввод, сравните и повторяйте, пока ответ не будет правильным.

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

Ограничение числа попыток

Добавьте максимальное число попыток, чтобы усложнить игру.

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

Проверка входных данных

Если пользователь вводит нечисловые данные, cin переходит в состояние ошибки. Корректно восстановите работу.

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

Догадки вне диапазона

Отклоняйте числа за пределами диапазона от 1 до 100 до подсчета попытки.

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

Цикл повторной игры

После завершения игры спросите пользователя, хочет ли он сыграть еще раз.

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

Сбор статистики

Сохраняйте общие показатели по всем играм: лучший результат, среднее число попыток и общее число побед.

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

Настройка диапазона

Позвольте пользователю выбрать легкий режим (от 1 до 10), средний (от 1 до 100) или сложный (от 1 до 1000). Соответственно настройте dist.

Система подсказок

Необязательно: после нескольких неправильных догадок сужайте диапазон. «Оно не меньше 40».

Разделение на функции

Перестройте код, выделив generateSecret(), readGuess(), playRound() и main(). Каждая функция должна выполнять одну задачу.

Быстрая проверка

Какая последовательность подключаемых заголовочных файлов нужна для генерации случайных чисел в современном C++?

Итоги

Игра на угадывание числа объединяет генерацию случайных чисел, проверку входных данных, циклы и состояние игры. Разделите код на небольшие функции и добавьте повторную игру, статистику и уровни сложности.

Можно начать бесплатно

Изучай C++ с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
51
Уроки
203

Часто задаваемые вопросы

Урок «Игра «Угадай число»» бесплатный?

Да — полный текст урока «Игра «Угадай число»» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C++ Academy, подпишись на CoddyKit PRO. Курс C++ Academy содержит 4 уроков всего.

Чему я научусь в уроке «Игра «Угадай число»»?

Реализуйте небольшую интерактивную игру на угадывание числа со случайными числами. Ты практикуешь C++ Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C++ Academy?

Предыдущий опыт не требуется. C++ Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Игра «Угадай число»»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C++ Academy?

Да. Каждый урок C++ Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание простого калькулятора CLI
  2. Чтение и запись файлов CSV
  3. Игра «Угадай число»
  4. Счётчик частотности слов
← Назад к C++ Academy