Игра «Угадай число»
Реализуйте небольшую интерактивную игру на угадывание числа со случайными числами.
«Игра «Угадай число»» — бесплатный урок 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 — локальная установка не требуется.
Все уроки этого курса
- Создание простого калькулятора CLI
- Чтение и запись файлов CSV
- Игра «Угадай число»
- Счётчик частотности слов