数字游戏.程序产生一个四位随机整数,这个四位数各个数码均不相同,你能猜出这个数是多少吗?,规则如下: 1.如果你猜中一位数字但位置不正确,则显示一个- 2.如果你清中一位数字且位置也正确,则显示一个+ 如:假如原数为1689.你猜的数为3694.则显示一 3.你只有十次机会,努力吧少年? 按任意健开始游戏: 用C++实现
时间: 2023-06-16 14:05:08 浏览: 189
猜数字游戏 c语言实现 猜4位随机生成的数 每次给猜测提示直到猜对 包含程序流程图
5星 · 资源好评率100%
好的,下面是C++实现的代码:
```cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
srand(time(nullptr)); // 初始化随机数种子
int answer[4]; // 存放正确答案的数组
for (int i = 0; i < 4; i++) {
int digit;
do {
digit = rand() % 10; // 生成0~9之间的随机数字
} while (digit == answer[0] || digit == answer[1] || digit == answer[2] || digit == answer[3]); // 确保四个数字各不相同
answer[i] = digit;
}
cout << "数字游戏开始!你有10次机会猜出一个四位数,每次猜测后会显示一些提示。" << endl;
cout << "如果你猜中了某个数字且位置正确,会显示一个'+';如果猜中了某个数字但位置不正确,会显示一个'-'。" << endl;
cout << "请用四个不同的数字作为你的猜测,例如:1234" << endl;
int guess[4]; // 存放玩家猜测的数字
for (int i = 0; i < 10; i++) {
cout << "这是你的第 " << i+1 << " 次猜测,请输入四个数字:";
cin >> guess[0] >> guess[1] >> guess[2] >> guess[3];
int right_place = 0; // 记录位置正确的数字个数
int wrong_place = 0; // 记录位置不正确的数字个数
for (int j = 0; j < 4; j++) {
if (guess[j] == answer[j]) {
right_place++;
} else {
for (int k = 0; k < 4; k++) {
if (guess[j] == answer[k]) {
wrong_place++;
break;
}
}
}
}
cout << "你的猜测结果是:";
for (int j = 0; j < 4; j++) {
cout << guess[j];
}
cout << ",";
cout << right_place << "个数字位置正确," << wrong_place << "个数字位置不正确。" << endl;
if (right_place == 4) {
cout << "恭喜你,猜对了!" << endl;
break;
}
}
if (right_place != 4) {
cout << "很遗憾,你没有在10次机会内猜出正确答案。正确答案是:";
for (int i = 0; i < 4; i++) {
cout << answer[i];
}
cout << endl;
}
return 0;
}
```
这个程序使用了一个长度为4的数组`answer`来存储正确答案。在初始化时,程序使用`rand()`函数生成四个不同的0~9之间的数字,并且保证它们各不相同。然后,程序询问玩家猜测,并且使用两个计数器`right_place`和`wrong_place`来记录猜测中有多少数字位置正确、多少数字位置不正确。程序在玩家猜对全部四个数字或者猜测次数达到10次后结束。
阅读全文