C++实现猜数字游戏攻略
1. 游戏规则
猜数字游戏是一款经典的游戏,其规则是:
- 系统随机生成一个四位数字,数字的每一位都不相同且在0-9之间。
- 玩家每次输入一个四位数字,系统会返回该数字与答案数字相比较的结果。
- 如果玩家输入的数字中包含了正确的数字但是位置不正确,则系统返回B。
- 如果玩家输入的数字中包含了正确的数字且位置也正确,则系统返回A。
- 如果玩家输入的数字与答案数字完全相同,则系统返回4A,玩家胜利。
例如,如果系统生成的数字为“1 2 3 4”,玩家输入数字“2 4 1 3”,则系统应该返回“4A0B”,因为两个数字都包含了“1、2、3、4”,位置也相同。如果输入“4 1 2 3”,则系统应该返回“0A4B”,因为四个数字都正确但是位置不正确。
2. 游戏实现
在C++中,可以使用随机数生成器和标准输入输出流来实现猜数字游戏。
示例代码如下:
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
// 生成随机数字
srand(time(nullptr));
vector<int> answer;
while (answer.size() < 4) {
int digit = rand() % 10;
if (find(answer.begin(), answer.end(), digit) == answer.end()) {
answer.push_back(digit);
}
}
// 玩家开始猜数字
int guessCount = 0;
while (true) {
guessCount++;
// 获取玩家输入的数字
vector<int> guess;
cout << "Please enter your guess (four different digits): ";
for (int i = 0; i < 4; i++) {
int digit;
cin >> digit;
guess.push_back(digit);
}
// 计算结果
int numA = 0, numB = 0;
for (int i = 0; i < 4; i++) {
if (guess[i] == answer[i]) {
numA++;
}
else if (find(answer.begin(), answer.end(), guess[i]) != answer.end()) {
numB++;
}
}
// 输出结果
if (numA == 4) {
cout << "You win! You have guessed " << guessCount << " times." << endl;
break;
}
else {
cout << numA << "A" << numB << "B" << endl;
}
}
return 0;
}
这段代码中,我们使用了一个vector<int>
类型的变量answer
来保存正确的数字。在每个循环中,我们首先向玩家提示输入,并使用cin
读取四个不同的数字。然后,我们通过遍历玩家猜的数字和正确数字,分别计算匹配的数字个数和位置相同的数字个数,最后输出结果并判断是否猜中。
3. 总结
使用C++实现猜数字游戏很简单,只需要使用随机数生成器和标准输入输出流即可。我们可以使用vector<int>
类型的变量来保存正确的数字和玩家猜的数字,然后通过遍历计算匹配的数字个数和位置相同的数字个数来输出结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++实现猜数字游戏 - Python技术站