清数字游戏.程序产生一个四位数随机整数,这个四位数各个数码均不相同,你能猜出这个数是多少吗?。规则如下: 1-如果你猜中一位数字但位置不正确,则显示一个-· 2.如果你清中一位数字且位置也正确,则显示一个+如:假如原数为1689.你猜的数为3694.则显示--- 3.你只有十次机会,努力吧少年 每输入一次会显示还剩下多少次数 当一局玩完后输入Y可以开启新的一局,输入N则直接结束游戏 按任意進开始游戏:用C++表示
时间: 2023-06-20 16:06:04 浏览: 104
好的,这是一个猜数字的游戏,以下是用 C++ 实现的代码:
```cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
using namespace std;
int main()
{
// 随机生成一个四位数的整数
srand(time(nullptr));
int randomNumber = rand() % 9000 + 1000;
string randomString = to_string(randomNumber);
// 判断这个四位数的每一位是否都不相同
while (randomString[0] == randomString[1] ||
randomString[0] == randomString[2] ||
randomString[0] == randomString[3] ||
randomString[1] == randomString[2] ||
randomString[1] == randomString[3] ||
randomString[2] == randomString[3])
{
randomNumber = rand() % 9000 + 1000;
randomString = to_string(randomNumber);
}
int guessCount = 0;
bool gameOver = false;
// 开始游戏
while (!gameOver)
{
// 让玩家输入猜测的数字
cout << "请输入一个四位数的整数,每位数字都不相同(剩余次数:" << 10 - guessCount << "):";
string guessString;
cin >> guessString;
// 判断猜测的数字是否合法
if (guessString.length() != 4)
{
cout << "您输入的数字不是四位数,请重新输入!" << endl;
continue;
}
if (guessString[0] == guessString[1] ||
guessString[0] == guessString[2] ||
guessString[0] == guessString[3] ||
guessString[1] == guessString[2] ||
guessString[1] == guessString[3] ||
guessString[2] == guessString[3])
{
cout << "您输入的数字有重复的数字,请重新输入!" << endl;
continue;
}
// 对猜测的数字进行判断
int correctCount = 0;
int rightPositionCount = 0;
for (int i = 0; i < 4; i++)
{
if (guessString[i] == randomString[i])
{
rightPositionCount++;
}
else if (randomString.find(guessString[i]) != string::npos)
{
correctCount++;
}
}
// 输出判断结果
if (rightPositionCount == 4)
{
cout << "恭喜您猜对了!" << endl;
gameOver = true;
}
else
{
cout << "您猜测的数字中:" << endl;
cout << rightPositionCount << " 个数字的位置正确," << endl;
cout << correctCount << " 个数字的位置不正确。" << endl;
guessCount++;
if (guessCount >= 10)
{
cout << "很遗憾,您没有在规定次数内猜对,正确答案是:" << randomString << endl;
gameOver = true;
}
}
}
// 询问是否开始新游戏
char choice;
while (true)
{
cout << "是否开始新的一局游戏?(Y/N):";
cin >> choice;
if (choice == 'Y' || choice == 'y')
{
main();
break;
}
else if (choice == 'N' || choice == 'n')
{
cout << "感谢您的游戏,再见!" << endl;
break;
}
else
{
cout << "您的输入不正确,请重新输入!" << endl;
}
}
return 0;
}
```
这个程序首先会随机生成一个四位数的整数,并且每一位数字都不相同。然后程序会让玩家输入猜测的数字,如果输入的数字不合法(不是四位数或者有重复的数字),程序会提示玩家重新输入。如果输入的数字合法,程序会对猜测的数字进行判断,并输出判断结果。如果猜测的数字与随机生成的数字完全相同,游戏胜利结束;如果猜测的数字与随机生成的数字不同,程序会提示玩家还剩下多少次机会,并让玩家继续猜测。如果玩家猜测的次数达到 10 次,游戏失败结束。
当一局游戏结束后,程序会询问玩家是否开始新的一局游戏。如果玩家选择开始新的一局游戏,程序会重新开始游戏;如果玩家选择结束游戏,程序会输出感谢信息并退出。
阅读全文