Advertisement

C++控制台程序(文字小游戏)

阅读量:

UE4 C++学习前的复习应用了许多无实际价值的小技巧。没有深入探讨的内容,对有浓厚兴趣的小伙伴而言,只需完成编译操作即可。


#include
#include

using namespace std;

#define random(x) (rand()%x)

函数main的入口开始执行。
调用库函数time获取当前系统时间,并将其转换为整型变量赋值给种子参数以初始化随机数生成器。
热烈欢迎参加本次试炼游戏!在本次试炼中,请你与时间赛跑,在这里解开其中的数字谜题。
为了确保游戏公平,请注意所寻找的数字不能为零。
输入字符'0'表示退出当前关卡并进入下一关卡。

for循环从i=0开始依次执行直到i小于level次循环

cout<<"现在,你进入了第 ["<<(level-2)<<"] 关!"<<endl;
cout<<"共有 ["<<level<<"] 个数字作为密码!"<<endl;
cout<<"A : 它们的乘积为: "<<(sum)<<endl;
cout<<"B : 它们的总和为: "<<(pro)<<endl;
cout<<"C : 最后一个数字与前一个数字之差为: "<<(les)<<endl;
cout<<"D : 第一个数字与最后一个数字之总和为: "<<(did)<<endl;

int x=127; // 0111 1111
for (size_t i = 0; i < level-3; i++)
{
switch (rand()%(level))
{
case 0:
if ((x & 1) ==1)
{
cout<<"A-D再减去第一个数字 = "<<((sum)-(did)-num[0])<<endl;
x=x&1; //0111 1111 & 0000 0001
}
case 1:
if ((x & 2) ==2)
{
cout<<"AC再加第3个数字 = "<<((sum)(les)+num[2])<<endl;
x=x&2;
}
case 2:
if ((x & 4) ==4)
{
cout<<"B+D再乘第2个数字 = "<<(((pro)+(did))num[1])<<endl;
x=x&4;
}
case 3:
if ((x & 8) ==8)
{
cout<<"B
本关对应的数字 = "<<((pro)*num[level-3])<<endl;
x=x&8;
}
case 4:
if ((x & 16) ==16)
{
cout<<"C-本关对应的数字 = "<<((les)-num[level-3])<<endl;
x=x&16;
}
case 5:
if ((x & 32) ==32)
{
cout<<"第二个数字加本关对应的数字 = "<<(num[1]+num[level-3])<<endl;
x=x&32;
}
case 6:
if ((x & 64) ==64)
{
cout<<"C-B再乘上本关对应的数字 = "<<((les-pro)*num[level-3])<<endl;
x=x&64;
}
break;
default:
cout<<"本关对应的数字 = "<<(num[level-3])<<endl;
break;
}
x=127^x;
}

cout<<endl;
cout<<endl;

// for (size_t i = 0; i < level; i++)
// {
// cout<<"a = "<<num[i]<<endl;
// }

int input[10];
int sum = 1;
int pro = 0;
int les = 0;
int did = 0;
for (size_t k = 0; k < level;) {
std::cout << "剩余 " << (level - k) << " 个数字尚未接收." << std::endl;
std::cout << "请输入第" << k + 1 << "个数值:" << std::endl;
bool isNumber = true;
do {
if (!std::cin >> input[k]) {
char ch;
if ((ch = std::getchar()) != '\n') {
continue;
}
std::cout << "请注意:您未正确输入数据,请重新尝试:" << std::endl;
std::cin.clear();
std::sync(std::&std cin);
}
} while (!std::cin);
}

Psum*=iput[i];
Ppro+=iput[i];
Ples=iput[i]-iput[i-1];
Pdid=iput[0]+iput[i];

if (Psum==0)
{
isWin=false;
system("cls");
cout<<"你输入了0结束了游戏."<<endl;
break;
}

}

if (Psum == sum && Ppro == pro && Ples == les && Pdid == did)
{
system("cls"); cout << "看起来我对你的进展有所低估,你已经通过了第 " << (level - 2) << " 章." << endl;
level++; if (level == 8)
{
isWin = false; Wyou = true;
}
}
else
{
system("cls"); cout << "看起来你还未做好准备,再努力一下吧." << endl; isWin = false;
}

} while (isWin);

如果变量Wyou的值为真,则调用系统函数以清除屏幕,并输出以下信息:全部过关令人感到惊奇!然而你却表现出色!

system("pause");
return 0;
}

全部评论 (0)

还没有任何评论哟~