学习UE4 C++之前的复习,用了很多没啥用的小技巧.也没什么深度好讲的,有兴趣的小伙伴拉走编译就行了:


#include <iostream>
#include <ctime>

using namespace std;

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

int main(){
    srand((int)time(0));
    std::cout<<"欢迎参加本次试炼游戏,在本次试炼中,你必须与时间赛跑,找出谜题中的数字:"<<std::endl;
    std::cout<<"你需要找到符合条件的数字(数字不会为0),输入'0'结束游戏:"<<std::endl;

bool isWin=true;
    bool Wyou=false;
    int  level=3;
do
{
    int num[10];
    int sum=1;
    int pro=0;
    int les=0;
    int did=0;

for (size_t i = 0; i < level; i++)
    {
        num[i]=random(9)+1;
        sum*=num[i];
        pro+=num[i];
        les=num[i]-num[i-1];
        did=num[0]+num[i];
    }

cout<<"\n\n现在,你进入了第 ["<<(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<<"A*C再加第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 iput[10];
    int Psum=1;
    int Ppro=0;
    int Ples=0;
    int Pdid=0;
    for (size_t i = 0; i < level; i++)
    {
        cout<<"还剩下 ["<<(level-i)<<"] 个数字需要你输入."<<endl;
        cout<<"输入你的第 ["<<(i+1)<<"] 个数字 : ";
        bool isNum=true;
        cin>>iput[i];
        while (!cin)
        {
            char ch;
            if ((ch=getchar())!='\n')
            {
                continue;
            }      
             cout<<"你没有输入数字呢,请重新输入 : ";
             cin.clear();
             cin.sync();
             cin>>iput[i];
        }      
        
        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);
    
    if (Wyou)
    {
        system("cls");
        cout<<"你竟然通过了全部关卡?这不可能! 不过,你真的很强!!!"<<endl;
    }
    
    system("pause");
    return 0;
}

C++控制台程序(文字小游戏)相关推荐

  1. 利用Python基础代码语句,实现2G时代文字小游戏,世界如此简单

    优质文章,第一时间送达! 相信许多80,90后都玩过2G时代的文字小游戏,它是来自QQ家园的专属回忆.偷菜,美味小镇,大乐斗,还有精武堂等等,虽然只是文字的输出,但是留给我们这一代的人的印象却是最深刻 ...

  2. python做游戏代码_利用Python基础代码语句,实现2G时代文字小游戏,世界如此简单!...

    相信许多80,90后都玩过2G时代的文字小游戏,它是来自QQ家园的专属回忆.偷菜,美味小镇,大乐斗,还有精武堂等等,虽然只是文字的输出,但是留给我们这一代的人的印象却是最深刻的.曾经流量很少,响应很快 ...

  3. 利用Python基础代码语句,实现2G时代文字小游戏,学会难道不香吗?

    相信许多80,90后都玩过2G时代的文字小游戏,它是来自QQ家园的专属回忆.偷菜,美味小镇,大乐斗,还有精武堂等等,虽然只是文字的输出,但是留给我们这一代的人的印象却是最深刻的.曾经流量很少,响应很快 ...

  4. 利用Python基础代码语句,实现2G时代文字小游戏,世界如此简单!

    相信许多80,90后都玩过2G时代的文字小游戏,它是来自QQ家园的专属回忆.偷菜,美味小镇,大乐斗,还有精武堂等等,虽然只是文字的输出,但是留给我们这一代的人的印象却是最深刻的.曾经流量很少,响应很快 ...

  5. 改进Python文字小游戏(4)

    前面,我们讲了变量和字符串的一些种类.朋友们,还记得我们之前的那个智障的文字小游戏吗?今天,我们要做的第一件事就是来改进我们的文字小游戏,至于第二件事嘛,先让我卖个关子,众位客官,注意咯! 1)首先, ...

  6. python实现文字游戏_改进Python文字小游戏(4)

    前面,我们讲了变量和字符串的一些种类.朋友们,还记得我们之前的那个智障的文字小游戏吗?今天,我们要做的第一件事就是来改进我们的文字小游戏,至于第二件事嘛,先让我卖个关子,众位客官,注意咯! 1)首先, ...

  7. 控制台推箱子小游戏C语言

    自己开发的C语言控制台推箱子小游戏,基于二维数组实现,功能不多但是游戏整体较为完整,因为技术有限,所以代码暂未优化且整体显得较为臃肿,整体架构简单,代码全自主设计编写,仅作交流学习,还望大佬多多指点. ...

  8. 微信小程序,小游戏sockect报错修复集合

    微信小程序,小游戏的sockect的报错修复教程 适用范围:所有版本的小程序,小游戏 报错1:errMsg: "open fail: _code:8,_msg:TLS handshake f ...

  9. java演练 谁在哪里做什么 文字小游戏开发

    java演练 谁在哪里做什么 文字小游戏开发 视频 java演练 谁在哪里做什么 - 西瓜视频 https://www.ixigua.com/6870326962703827469/ 代码 impor ...

最新文章

  1. c# lock (obj) 与 lock (this) 区别
  2. Angular 2+ 监听路由变化动态设置页面标题
  3. Codeforces 1106F Lunar New Year and a Recursive Sequence (数学、线性代数、线性递推、数论、BSGS、扩展欧几里得算法)...
  4. InSAR 处理软件
  5. 裴蜀定理(note)
  6. Flutter入门:如何只关闭自身页面
  7. 记录sqlserver中使用变量
  8. Spark学习笔记:使用RDD
  9. Xml+Xsl:内容与形式的完美分离
  10. R语言实现︱局部敏感哈希算法(LSH)解决文本机械相似性的问题(一,基本原理)
  11. iOS 疑难杂症 — — 推送本地国际化 loc-key 本地化失败的问题
  12. JMeter 安装教程(详细安装教程)
  13. 《数学建模算法与应用》方法概述
  14. 【题解】LuoGu5423:[USACO19OPEN]Valleys P
  15. HTML的id选择器类选择器
  16. 【iOS开发-39】为什么按钮点击时背景图片颜色灰蒙蒙的?与按钮的Type属性有关
  17. 白酒行业如何结合互联网模式突破年营业额过亿
  18. windows10桌面鼠标右键出现卡顿解决方法
  19. DeFi发币潮之下,散户真能赚到钱吗?
  20. 南加大计算机本科学费,解析|南加州大学学费及生活费

热门文章

  1. 获取当前时间一年后的日期
  2. 深入理解PID的微分、积分电路
  3. EXCEL中插入图形
  4. selenium下Edge()配置错误问题
  5. HEVC量化:色度QP值
  6. TranUnet 复现[Errno 2] No such file or directory: ‘./model/TU_Synapse224/TU_pretrain_ViT-B_16_skip3_ep
  7. Vert.x(vertx) 创建HTTP服务
  8. [Python3]Python官方文档-Python Manuals
  9. 灰度直方图及直方图均衡化的MATLAB实现
  10. c语言 for each循环,C#中foreach循环对比for循环的优势和劣势