c++编写“猜数字游戏,要求:该游戏可以由程序随机产生一个 N 位数字,或者用户输入一个 N 位数字,作为待猜测数字,玩游戏者开始猜测后,可以有 M 次机会输入数字来匹配上面的待猜测数字,用户每输入一次,系统给出本次猜测结果:A 表示位置正确且狮数字正确;B 表示数字正确而位置不正确。某次猜中后,游戏结束,若 M 次机会用完,游戏也结束”的程序
时间: 2024-03-06 12:51:47 浏览: 50
猜数字游戏课程设计
以下是基于 C++ 的猜数字游戏代码:
```
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cstring>
using namespace std;
int main()
{
const int MAX_N = 10; // N 的最大值
const int MAX_M = 10; // M 的最大值
int n, m, a[MAX_N], b[MAX_N];
char s[MAX_N];
// 随机生成 N 位数字
srand((unsigned)time(NULL));
n = rand() % MAX_N + 1;
for (int i = 0; i < n; i++)
a[i] = rand() % 10;
cout << "猜数字游戏开始!" << endl;
cout << "请输入一个 " << n << " 位数字(每位数字之间用空格隔开):" << endl;
// 获取用户输入的 N 位数字
for (int i = 0; i < n; i++)
cin >> b[i];
// 开始游戏
for (int i = 1; i <= MAX_M; i++)
{
int A = 0, B = 0;
// 获取用户猜测的 N 位数字
cout << "请输入你猜测的 " << n << " 位数字(每位数字之间用空格隔开):" << endl;
for (int j = 0; j < n; j++)
cin >> b[j];
// 判断猜测结果
for (int j = 0; j < n; j++)
if (b[j] == a[j])
A++;
else
for (int k = 0; k < n; k++)
if (b[j] == a[k])
B++;
cout << "第 " << i << " 次猜测结果为 " << A << "A" << B << "B" << endl;
// 猜中结束游戏
if (A == n)
{
cout << "恭喜你,猜中了!" << endl;
return 0;
}
}
// 次数用完结束游戏
cout << "很遗憾,次数用完了,游戏结束!" << endl;
return 0;
}
```
运行程序后,首先会要求用户输入一个 N 位数字,然后程序会随机生成一个 N 位数字作为待猜测数字。接着,程序会要求用户输入猜测的 N 位数字,然后根据用户猜测的数字与待猜测数字的匹配情况输出本次猜测结果。一共有 M 次机会猜测,若猜中则游戏结束,若 M 次机会用完则游戏也结束。
阅读全文