c++游戏
2026-03-17 15:56:25
发布于:浙江
#include <iostream> // 用于输入输出
#include <cstdlib> // 用于随机数生成
#include <ctime> // 用于设置随机数种子
#include <limits> // 用于清空输入缓冲区
using namespace std;
// 清空调试输入缓冲区的函数(处理非法输入)
void clearInputBuffer() {
cin.clear(); // 清除错误状态
// 忽略缓冲区中剩余的字符,直到换行符
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
// 猜数字游戏核心函数
void guessNumberGame() {
// 设置随机数种子,确保每次运行生成不同的随机数
srand(static_cast<unsigned int>(time(nullptr)));
// 生成 1-100 之间的随机数作为答案
int secretNumber = rand() % 100 + 1;
int guess = 0; // 玩家输入的猜测数字
int guessCount = 0; // 猜测次数
cout << "=======================" << endl;
cout << " 猜数字游戏 V1.0 " << endl;
cout << "=======================" << endl;
cout << "我已经生成了一个 1-100 之间的随机数,请开始猜测!" << endl;
// 循环猜测直到猜对
while (true) {
cout << "\n请输入你的猜测: ";
// 检查输入是否合法(必须是整数)
while (!(cin >> guess)) {
clearInputBuffer(); // 清空错误输入
cout << "输入无效!请输入一个整数: ";
}
guessCount++; // 猜测次数+1
// 判断猜测结果并给出提示
if (guess > secretNumber) {
cout << "猜大了!再试试更小的数字。" << endl;
} else if (guess < secretNumber) {
cout << "猜小了!再试试更大的数字。" << endl;
} else {
// 猜对了,结束游戏并显示结果
cout << "\n🎉 恭喜你猜对了!答案就是 " << secretNumber << endl;
cout << "你一共猜了 " << guessCount << " 次。" << endl;
break;
}
}
}
int main() {
char playAgain; // 记录玩家是否继续游戏
do {
guessNumberGame(); // 运行猜数字游戏
// 询问是否继续游戏
cout << "\n是否继续游玩?(Y/N): ";
cin >> playAgain;
clearInputBuffer(); // 清空输入缓冲区,避免影响下一次游戏
// 统一转换为大写,兼容 y/Y/n/N 四种输入
playAgain = toupper(playAgain);
} while (playAgain == 'Y'); // 只有输入Y/y才继续
cout << "\n感谢游玩!再见👋" << endl;
return 0;
}
全部评论 3
为了罐头,点赞+评论
9小时前 来自 浙江
0666
9小时前 来自 浙江
01
9小时前 来自 浙江
0





















有帮助,赞一个