数字猜谜游戏
使用随机数实现一个小型交互式数字猜谜游戏
数字猜谜游戏 是 CoddyKit 上的免费 C++ Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 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++ 随机数需要哪些头文件包含序列?
回顾
猜数字游戏将随机数生成、输入验证、循环和游戏状态结合在一起。请将代码重构为小型函数,并添加重新游戏、统计信息和难度设置来完善体验。
用 AI 导师学习 C++ — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 51
- 课程
- 203
常见问题解答
「数字猜谜游戏」课时是免费的吗?
是的 — 「数字猜谜游戏」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 C++ Academy 课程的其余内容,请升级到 CoddyKit PRO。 C++ Academy 课程共包含 4 节课。
「数字猜谜游戏」这节课中我会学到什么?
使用随机数实现一个小型交互式数字猜谜游戏 你通过在浏览器中直接运行的动手代码来练习 C++ Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 C++ Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 C++ Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「数字猜谜游戏」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 C++ Academy 课中编写并运行代码吗?
能。每节 C++ Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。