鱼C论坛

 找回密码
 立即注册
查看: 3016|回复: 3

[吹水] c++文字小游戏

[复制链接]
发表于 2022-1-31 10:21:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. #include<bits/stdc++.h>
  2. #include<windows.h>
  3. using  namespace  std;
  4. double  shengmingli;//定义主角初始生命力
  5. int nand;//定义难度
  6. int  xiaozhen;//定义选择项目
  7. int  gongjili;//定义主角初始攻击力
  8. int  fangyuli;//定义主角初始防御力
  9. int  money;//定义主角初始金钱数量
  10. int  jingl=20;//定义主角精力,精力小于10会有几率死亡
  11. bool  guoguan;//定义是否通关判定
  12. void  wuqidian();//定义武器店函数
  13. void  yaodian();//定义药店函数
  14. void  guaiwu1();//定义小怪物函数
  15. void  guaiwu2();//定义大怪物函数
  16. void  jiaotan();//交谈,1.2.6添加
  17. void link();//看广告加金币 ,1.4添加
  18. void jiazai();//加载界面,1.4.6添加
  19. void xunlian();//训练场,1.5.3增加
  20. void xiaoyou();//小游戏“探险者日记”
  21. void jineng();//技能 with 1.8.3
  22. void duqu();//读取记录
  23. void cundang();//进行存储
  24. int  main()  {
  25.         int xuanze;
  26.         jiazai();
  27.         while(1) {
  28.                 cout<<"选择:1.开始小镇,2.退出本游戏,3.读取存档"<<endl;
  29.                 cin>>xuanze;
  30.                 if(xuanze==2){
  31.                         int xuanze888;
  32.                         cout<<"是否存储?0.no,1.yes"<<endl;
  33.                         cin>>xuanze888;
  34.                         if(xuanze888==0);
  35.                         else {
  36.                                 cout<<"请立即打开你的pos.txt,将里面内容全部清空!否则后果自负!!!"<<endl;
  37.                                 system("pause");
  38.                                 freopen("pos.txt","w",stdout);
  39.                                 cout<<gongjili+888<<endl;
  40.                                 cout<<money+999<<endl;
  41.                                 cout<<jingl+8080<<endl;
  42.                                 cout<<fangyuli+9801<<endl;
  43.                                 cout<<nand+188062<<endl;
  44.                                  
  45.                         }
  46.                    return  0;
  47.                 }
  48.                 cout<<"选择难度:0.简单,1.正常,2.精英,3.噩梦,4.挑战不可能!,5.挑战不可能*2!!(目前未开放)其他:我已读档,跳过(谨慎!)"<<endl;
  49.                 cin>>xuanze;
  50.                 switch(xuanze) {
  51.                         case 0:
  52.                                 system("color 87");
  53.                                 shengmingli=2500;//重新定义主角初始生命力
  54.                                 gongjili=140;//重新定义主角初始攻击力
  55.                                 fangyuli=250;//重新定义主角初始防御力
  56.                                 money=65;
  57.                                 break;//重新定义主角初始金钱数量
  58.                         case 1:
  59.                                 system("color 3F");
  60.                                 shengmingli=2150;//重新定义主角初始生命力
  61.                                 gongjili=115;//重新定义主角初始攻击力
  62.                                 fangyuli=180;//重新定义主角初始防御力
  63.                                 money=45;
  64.                                 break;//重新定义主角初始金钱数量
  65.                         case 2:
  66.                                 system("color 59");
  67.                                 shengmingli=1890;//重新定义主角初始生命力
  68.                                 gongjili=90;//重新定义主角初始攻击力
  69.                                 fangyuli=145;//重新定义主角初始防御力
  70.                                 money=25;
  71.                                 break;//重新定义主角初始金钱数量
  72.                         case 3:
  73.                                 system("color 4E");
  74.                                 shengmingli=1500;//重新定义主角初始生命力
  75.                                 gongjili=75;//重新定义主角初始攻击力
  76.                                 fangyuli=120;//重新定义主角初始防御力
  77.                                 money=15;
  78.                                 break;//重新定义主角初始金钱数量
  79.                         case 4:
  80.                                 cout<<"此难度极难,请做好心里准备!!!"<<endl;
  81.                                 system("color 04");
  82.                                 shengmingli=700;//重新定义主角初始生命力
  83.                                 gongjili=45;//重新定义主角初始攻击力
  84.                                 fangyuli=75;//重新定义主角初始防御力
  85.                                 money=1000;
  86.                                 jingl=15;
  87.                                 break;//重新定义主角初始金钱数量
  88.                         default:
  89.                                 cout<<"已获取你的存档。"<<endl;
  90.                                 freopen("pos.txt","r",stdin);
  91.                                 cin>>gongjili;
  92.                                 gongjili-=888;
  93.                                 cin>>money;
  94.                                 money-=999;
  95.                                 cin>>jingl;
  96.                                 jingl-=8080;
  97.                                 cin>>fangyuli;
  98.                                 fangyuli-=9801;
  99.                                 cin>>nand;
  100.                                 nand-=188062;
  101.                                 fclose(stdin);
  102.                                 break;
  103.                 }
  104.                 nand=xuanze;
  105.                 while(1) {
  106.                         int qxiaozhen=xiaozhen;
  107.                         system("cls");
  108.                         cout<<"欢迎你开始玩打怪物小游戏!\n";
  109.                         cout<<"精力小于10会有概率暴毙哟!\n";
  110.                         cout<<"一个1000年的小镇。周围有一条河,有一片树林,很多房子和很多人。\n有一家药店"<<endl;
  111.                         cout<<"和一家武器店。\n";
  112.                         cout<<"1.去武器店"<<endl;
  113.                         cout<<"2.去药品店"<<endl;
  114.                         cout<<"3.去打小怪物(版本1.5.4后增强)"<<endl;
  115.                         cout<<"4.去打大怪物"<<endl;
  116.                         cout<<"5.退出游戏"<<endl;
  117.                         cout<<"6.显示你的状态"<<endl;
  118.                         cout<<"7.交谈"  <<endl;
  119.                         if(xuanze!=8&&xuanze!=6&&nand<=2)
  120.                                 cout<<"8.看广告得随机奖励"<<endl;
  121.                         cout<<"9.去训练场(版本1.5.3加入)"<<endl;
  122.                         cout<<"10.学习技能(版本1.9.1加入)"<<endl;
  123.                         if(shengmingli<=0) { //主角生命力小于等于0时游戏结束
  124.                                 cout<<"你死啦!"<<endl;
  125.                                 system("pause");
  126.                                 system("cls");
  127.                                 break;
  128.                         }
  129.                         if(jingl<10) {
  130.                                 srand(unsigned(time(NULL)));
  131.                                 if(rand()%jingl==1) {
  132.                                         cout<<"你精力不足,在散步的过程中吐血身亡了。"<<endl;
  133.                                 }
  134.                                 system("pause");
  135.                                 system("cls");
  136.                                 break;
  137.                         }
  138.                         if(guoguan) {
  139.                                 cout<<"恭喜通关!"<<endl;
  140.                                 system("pause");
  141.                                 system("cls");
  142.                                 break;
  143.                         }
  144.                         cin>>xiaozhen;
  145.                         if(xiaozhen==5) {
  146.                                 cout<<"欢迎下次来玩!!!!"<<endl;
  147.                                 system("pause");
  148.                                 system("cls");
  149.                                 break;
  150.                         }
  151.                         if(xiaozhen==6) { //输入6可检测自己的状态
  152.                                 system("cls");
  153.                                 cout<<"你的生命力:"<<shengmingli<<endl;
  154.                                 cout<<"你的攻击力:"<<gongjili<<endl;
  155.                                 cout<<"你的防御力:"<<fangyuli<<endl;
  156.                                 cout<<"你拥有的钱:"<<money<<endl;
  157.                                 cout<<"你的精力:"<<jingl<<endl;
  158.                                 system("pause");
  159.                         } else
  160.                                 switch(xiaozhen) {
  161.                                         case  1  :
  162.                                                 system("cls");
  163.                                                 wuqidian();
  164.                                                 break;
  165.                                         case  2  :
  166.                                                 system("cls");
  167.                                                 yaodian();
  168.                                                 break;
  169.                                         case  3  :
  170.                                                 system("cls");
  171.                                                 guaiwu1();
  172.                                                 break;
  173.                                         case  4  :
  174.                                                 system("cls");
  175.                                                 guaiwu2();
  176.                                                 break;
  177.                                         case  7  :
  178.                                                 system("cls");
  179.                                                 jiaotan();
  180.                                                 break;
  181.                                         case  8  :
  182.                                                 if(qxiaozhen==8||qxiaozhen==6) {
  183.                                                         cout<<"你刚才已经来过了,请先干其他的事!"<<endl;
  184.                                                         system("pause");
  185.                                                         system("cls");
  186.                                                         break;
  187.                                                 }
  188.                                                 if(nand>=3){
  189.                                                     cout<<"此难度不开放广告!"<<endl;
  190.                                                         system("pause");
  191.                                                         system("cls");

  192.                                                         break;
  193.                                                 }
  194.                                                 system("cls");
  195.                                                 link();
  196.                                                 break;
  197.                                         case  9  :
  198.                                                 system("cls");
  199.                                                 xunlian();
  200.                                                 break;
  201.                                         case  10:
  202.                                                 system("cls");
  203.                                                 jineng();
  204.                                                 break;
  205.                                         default  :
  206.                                                 cout<<"请不要乱选!"<<endl;
  207.                                                 system("pause");
  208.                                                 system("cls");
  209.                                                 break;
  210.                                 }
  211.                 }
  212.         }
  213. }
  214. void  wuqidian() {
  215.         cout<<"欢迎来到武器店!"<<endl;
  216.         cout<<"1、买小刀(10M加2攻击力)"<<endl;
  217.         cout<<"2、买短剑(80M加20攻击力)"<<endl;
  218.         cout<<"3、买大砍刀(140M加40攻击力)"<<endl;
  219.         cout<<"4、买双节棍(200M加60攻击力)"<<endl;
  220.         cout<<"5、买盾牌(60M加30防御力)"<<endl;
  221.         cout<<"6、买铠甲(100M加60防御力)"<<endl;
  222.         cout<<"7、离开武器店"<<endl;
  223.         int  wuqidian;
  224.         cin>>wuqidian;
  225.         while(wuqidian!=7) { //输入7时结束函数
  226.                 switch(wuqidian) {
  227.                         case  1  :
  228.                                 if(money<10)
  229.                                         cout<<"你的钱不够"<<endl;//钱不够时返回Flase
  230.                                 else {
  231.                                         cout<<"购买成功!"<<endl;//钱足够时返回True
  232.                                         gongjili+=2;
  233.                                         money-=10;
  234.                                 }
  235.                                 break;
  236.                         case  2  :
  237.                                 if(money<80)
  238.                                         cout<<"你的钱不够"<<endl;
  239.                                 else {
  240.                                         cout<<"购买成功!"<<endl;
  241.                                         gongjili+=20;
  242.                                         money-=80;
  243.                                 }
  244.                                 break;
  245.                         case  3  :
  246.                                 if(money<140)
  247.                                         cout<<"你的钱不够"<<endl;
  248.                                 else {
  249.                                         cout<<"购买成功!"<<endl;
  250.                                         gongjili+=40;
  251.                                         money-=140;
  252.                                 }
  253.                                 break;
  254.                         case  4  :
  255.                                 if(money<200)
  256.                                         cout<<"你的钱不够"<<endl;
  257.                                 else {
  258.                                         cout<<"购买成功!"<<endl;
  259.                                         gongjili+=60;
  260.                                         money-=200;
  261.                                 }
  262.                                 break;
  263.                         case  5  :
  264.                                 if(money<60)
  265.                                         cout<<"你的钱不够"<<endl;
  266.                                 else {
  267.                                         cout<<"购买成功!"<<endl;
  268.                                         fangyuli+=30;
  269.                                         money-=60;
  270.                                 }
  271.                                 break;
  272.                         case  6:
  273.                                 if(money<100)
  274.                                         cout<<"你的钱不够"<<endl;
  275.                                 else {
  276.                                         cout<<"购买成功!"<<endl;
  277.                                         fangyuli+=60;
  278.                                         money-=100;
  279.                                 }
  280.                                 break;
  281.                         default  :
  282.                                 cout<<"无商品!"<<endl;
  283.                                 break;
  284.                 }
  285.                 system("pause");
  286.                 system("cls");
  287.                 cout<<"欢迎来到武器店!"<<endl;
  288.                 cout<<"1、买小刀(10M加2攻击力)"<<endl;
  289.                 cout<<"2、买短剑(80M加20攻击力)"<<endl;
  290.                 cout<<"3、买大砍刀(140M加40攻击力)"<<endl;
  291.                 cout<<"4、买双节棍(200M加60攻击力)"<<endl;
  292.                 cout<<"5、买盾牌(60M加30防御力)"<<endl;
  293.                 cout<<"6、买铠甲(100M加60防御力)"<<endl;
  294.                 cout<<"7、离开武器店"<<endl;
  295.                 cin>>wuqidian;
  296.         }
  297.         if(wuqidian==7) {
  298.                 //返回main()主函数
  299.                 cout<<"欢迎下次再来!"<<endl;
  300.                 system("pause");
  301.         }
  302. }  /*  yaodian()的设置与wuqidian()相同,可参照阅读.  */
  303. void  yaodian() {
  304.         cout<<"欢迎来到药品店!"<<endl;
  305.         cout<<"1、买1号补血药(10M加200生命和1精力)"<<endl;
  306.         cout<<"2、买2号补血药(50M加1000生命和6精力)"<<endl;
  307.         cout<<"3、买3号补血药(100M加2200生命和12精力)"<<endl;
  308.         cout<<"4、离开药店"<<endl;
  309.         int  yaodian;
  310.         cin>>yaodian;
  311.         while(yaodian!=4) {
  312.                 switch(yaodian) {
  313.                         case  1  :
  314.                                 if(money<10)
  315.                                         cout<<"你的钱不够"<<endl;
  316.                                 else {
  317.                                         cout<<"购买成功!"<<endl;
  318.                                         shengmingli+=200;
  319.                                         money-=10;
  320.                                         jingl++;
  321.                                 }
  322.                                 break;
  323.                         case 2 :
  324.                                 if(money<50)
  325.                                         cout<<"你的钱不够"<<endl;
  326.                                 else {
  327.                                         cout<<"购买成功!"<<endl;
  328.                                         shengmingli+=1000;
  329.                                         money-=50;
  330.                                         jingl+=6;
  331.                                 }

  332.                                 break;
  333.                         case 3 :
  334.                                 if(money<100)
  335.                                         cout<<"你的钱不够"<<endl;
  336.                                 else  {
  337.                                         cout<<"购买成功!"<<endl;
  338.                                         shengmingli+=2200;
  339.                                         money-=100;
  340.                                         jingl+=12;
  341.                                 }
  342.                                 break;
  343.                         default :
  344.                                 cout<<"无商品!!!"<<endl;
  345.                                 break;
  346.                 }
  347.                 system("pause");
  348.                 system("cls");
  349.                 cout<<"欢迎来到药品店!"<<endl;
  350.                 cout<<"1、买1号补血药(10M加200生命和1精力)"<<endl;
  351.                 cout<<"2、买2号补血药(50M加1000生命和6精力)"<<endl;
  352.                 cout<<"3、买3号补血药(100M加2200生命和12精力)"<<endl;
  353.                 cout<<"4、离开药店"<<endl;
  354.                 cin>>yaodian;
  355.         }
  356.         if(yaodian==4) {
  357.                 cout<<"欢迎下次再来!"<<endl;
  358.                 system("pause");
  359.         }
  360. }
  361. /*这里是两个战斗函数,使用指针来处理.避免造成内存崩溃。*/
  362. void guaiwu1() {
  363.         system("cls");
  364.         srand(unsigned(time(NULL)));
  365.         cout<<"开始与小怪物战斗!!!"<<endl;
  366.         double g_shengmingli;//定义怪物生命
  367.         int g_gongjili;//定义怪物攻击力
  368.         int g_fangyuli;//定义怪物防御力
  369.         int g_money;//定义怪物金钱
  370.         g_shengmingli=rand()%100+300;
  371.         g_gongjili=rand()%100+30;
  372.         g_fangyuli=rand()%100+30;
  373.         g_money=rand()%20+20;
  374.         double tongji1;//用来计算主角对怪物的杀伤
  375.         double tongji2;//用来计算怪物对主角的杀伤
  376.         tongji1=0;
  377.         tongji2=0;
  378.         int huihe;//定义回合数
  379.         huihe=1;
  380.         cout<<"你开始对小怪物进行攻击!"<<endl;
  381.         int xuanze;
  382.         char xuan;
  383.         /*
  384.         攻击计算公式
  385.         杀伤=攻击力*2-防御力
  386.         玩家每回合可以选择攻击与逃跑
  387.         */
  388.         while(g_shengmingli>0 && shengmingli>0 && xuanze!=2) {
  389.                 srand(unsigned(time(NULL)));
  390.                 int g_suiji=rand()%111+5;
  391.                 if(nand<2)g_suiji=0;
  392.                 cout<<"现在是第"<<huihe<<"回合!"<<endl;
  393.                 cout<<"请选择你的动作:\n";
  394.                 cout<<"1、攻击\n2、逃跑\n";
  395.                 cin>>xuan;
  396.                 xuanze=xuan-'0';
  397.                 switch(xuanze) {
  398.                         case 1:
  399.                                 cout<<"你对小怪物发动了攻击!"<<endl;
  400.                                 cout<<"你与小怪物战斗,精力-1"<<endl;
  401.                                 jingl--;
  402.                                 tongji1=int(gongjili*2-g_fangyuli);
  403.                                 if(tongji1<=0)tongji1=1;
  404.                                 g_shengmingli-=tongji1;
  405.                                 cout<<"你打掉了小怪物"<<tongji1<<"的生命!"<<endl;//*g_shengmingli
  406.                                 if(g_shengmingli<=0) {
  407.                                         cout<<"小怪物还剩0点生命"<<endl;
  408.                                 } else {
  409.                                         cout<<"小怪物还剩"<<g_shengmingli<<"点生命"<<endl;
  410.                                 }
  411.                                 if(g_shengmingli<=0) {
  412.                                         //杀死怪物后的返回
  413.                                         cout<<"小怪物被你杀死了!你真厉害!!!"<<endl;
  414.                                         cout<<"你挣了"<<g_money<<"M币"<<endl;
  415.                                         money+=g_money;
  416.                                         cout<<"你现有"<<money<<"M币"<<endl;
  417.                                         Sleep(1000);
  418.                                         cout<<"你精力大涨,精力+2"<<endl;
  419.                                         jingl+=2;
  420.                                         cout<<"请按任意键返回小镇..."<<endl;
  421.                                         char c;
  422.                                         cin>>c;
  423.                                         break;
  424.                                 }
  425.                                 tongji2=int(g_gongjili*2-fangyuli+g_suiji);
  426.                                 if(tongji2<=0)tongji2=1;
  427.                                 shengmingli-=tongji2;
  428.                                 cout<<"小怪物对你发动了攻击!"<<endl;
  429.                                 if(huihe%4==0&&nand==4){
  430.                                         cout<<"小怪使用了技能“斩将”,你减少3000生命"<<endl;
  431.                                         shengmingli-=3000;
  432.                                 }
  433.                                 else cout<<"小怪物打掉了你"<<tongji2<<"的生命!"<<endl;
  434. //                                cout<<"你还剩"<<max(0,shengmingli)<<"点生命"<<endl;
  435.                                 if(shengmingli<=0) {
  436.                                         cout<<"你还剩0点生命"<<endl;
  437.                                 } else {
  438.                                         cout<<"你还剩"<<shengmingli<<"点生命"<<endl;
  439.                                 }
  440.                                 break;
  441.                         case 2:
  442.                                 cout<<"你决定逃跑!"<<endl;
  443.                                 if(rand()%30==1) {
  444.                                         cout<<"你在逃跑过程中扭伤了腿,精力-1"<<endl;
  445.                                         jingl--;
  446.                                 } else cout<<"逃跑成功!"<<endl;
  447.                                 continue;
  448.                         default:
  449.                                 cout<<"请不要乱选!"<<endl;
  450.                                 huihe--;
  451.                 }
  452.                 huihe++;
  453.         }
  454.         if(shengmingli<=0) {
  455.                 //被怪物杀死后的返回
  456.                 cout<<"你被小怪物杀死了!游戏结束!!!"<<endl;
  457.                 cout<<"即将返回主页面..."<<endl;
  458.                 Sleep(3000);
  459.         } else if(xuanze==2) {
  460.                 //逃跑的返回
  461.                 cout<<"你逃回了小镇!"<<endl;
  462.                 cout<<"即将返回小镇..."<<endl;
  463.                 Sleep(3000);
  464.         }
  465. }
  466. /*
  467. 设置均与void函数guaiwu1()相同,可参照上例阅读。
  468. */
  469. void guaiwu2() {
  470.         srand(unsigned(time(NULL)));
  471.         cout<<"开始与大怪物战斗!!!"<<endl;
  472.         cout<<"你与大怪物战斗,精力-1"<<endl;
  473.         jingl--;
  474.         double g_shengmingli;
  475.         int g_gongjili;
  476.         int g_fangyuli;
  477.         g_shengmingli=10000;
  478.         g_gongjili=210;
  479.         g_fangyuli=rand()%30+85;
  480.         double tongji1;
  481.         double tongji2;
  482.         tongji1=0;
  483.         tongji2=0;
  484.         int huihe;
  485.         huihe=1;
  486.         cout<<"你开始对大怪物进行攻击!"<<endl;
  487.         int xuanze;
  488.         char xuan;
  489.         while(g_shengmingli>0 && shengmingli>0 && xuanze!=2) {
  490.                 srand(unsigned(time(NULL)));
  491.                 int suiji=rand()%100+23,g_suiji=rand()%88+22;
  492.                 cout<<"现在是第"<<huihe<<"回合!"<<endl;
  493.                 cout<<"请选择你的动作:\n";
  494.                 cout<<"1、攻击\n2、逃跑\n";
  495.                 cin>>xuan;
  496.                 xuanze=xuan-'0';
  497.                 switch(xuanze) {
  498.                         case 1:
  499.                                 cout<<"你对大怪物发动了攻击!"<<endl;
  500.                                 g_shengmingli-=int(gongjili*3.5-g_fangyuli+suiji);
  501.                                 tongji1=int(gongjili*3.5-g_fangyuli+suiji);
  502.                                 cout<<"你打掉了大怪物"<<tongji1<<"的生命!"<<endl;
  503. //                                cout<<"大怪物还剩"<<max(0,*g_shengmingli)<<"点生命"<<endl;
  504.                                 if(g_shengmingli<=0) {
  505.                                         cout<<"大怪物还剩0点生命"<<endl;
  506.                                 } else {
  507.                                         cout<<"大怪物还剩"<<g_shengmingli<<"点生命"<<endl;
  508.                                 }
  509.                                 if(g_shengmingli<=0) {
  510.                                         cout<<"大怪物被你杀死了!你真厉害!!!"<<endl;
  511.                                         guoguan=true;
  512.                                         Sleep(3000);
  513.                                         break;
  514.                                 }
  515.                                 shengmingli-=int(g_gongjili*2-fangyuli+g_suiji);
  516.                                 tongji2=int(g_gongjili*2-fangyuli+g_suiji);
  517.                                 cout<<"大怪物对你发动了攻击!"<<endl;
  518.                                 if(huihe==4&&nand>=4){
  519.                                         cout<<"大怪物杀神附身,你一不小心被刀砍中,流血身亡。"<<endl;
  520.                                         shengmingli=0;
  521.                                 }
  522.                                 else cout<<"大怪物打掉了你"<<tongji2<<"的生命!"<<endl;
  523. //                                cout<<"你还剩"<<max(0,shengmingli)<<"点生命"<<endl;
  524.                                 if(shengmingli<=0) {
  525.                                         cout<<"你还剩0点生命"<<endl;
  526.                                 } else {
  527.                                         cout<<"你还剩"<<shengmingli<<"点生命"<<endl;
  528.                                 }
  529.                                 break;
  530.                         case 2:
  531.                                 cout<<"你决定逃跑!"<<endl;
  532.                                 cout<<"大怪物把你吓到了,你还在逃跑时扭伤了腿,精力值减2"<<endl;
  533.                                 jingl-=2;
  534.                                 continue;
  535.                         default:
  536.                                 cout<<"请不要乱选!"<<endl;
  537.                 }
  538.                 huihe++;
  539.         }
  540.         if(shengmingli<=0) {
  541.                 cout<<"你被大怪物杀死了!游戏结束!!!"<<endl;
  542.                 cout<<"即将返回主页面..."<<endl;
  543.                 Sleep(3000);
  544.         } else if(xuanze==2) {
  545.                 cout<<"你逃回了小镇!"<<endl;
  546.                 cout<<"即将返回小镇..."<<endl;
  547.                 Sleep(3000);
  548.         }
  549. }
  550. void jiaotan() {
  551.         int xuanze,xuanze1=0;
  552.         cout<<"一个妇人:你好。(面无表情)"<<endl;
  553.         cout<<"你要。。。。:1.说:“你怎么这么冷漠???”2.说:“你也好。”3.离开。"<<endl;
  554.         cin>>xuanze;
  555.         switch(xuanze) {
  556.                 case 1:
  557.                         cout<<"妇人:当然是为了试探你呀!"<<endl;
  558.                         cout<<"你于妇人谈的很投合,妇人告诉你,杀了大怪物,就可以离开这里。"<<endl;
  559.                         break;
  560.                 case 2:
  561.                         cout<<"妇人:嗯嗯,你想知道怎么离开这里吗?"<<endl;
  562.                         cout<<"1.想;2.算了。"<<endl;
  563.                         cin>>xuanze1;
  564.                         switch(xuanze1) {
  565.                                 case 1:
  566.                                         cout<<"你于妇人谈的很投合,妇人告诉你,杀了大怪物,就可以离开这里。"<<endl;
  567.                                         break;
  568.                                 case 2:
  569.                                         cout<<"妇人:哦,再见。"<<endl;
  570.                                         break;
  571.                                 default:
  572.                                         cout<<"系统崩溃!!!!!!"<<endl;
  573.                                         break;
  574.                         }
  575.                         break;
  576.                 case 3:
  577.                         break;
  578.         }
  579.         if(xuanze<3&&xuanze>0)system("pause");
  580. }
  581. void link() {
  582.         cout<<"你想看哪一段广告?(广告持续15秒)"<<endl;
  583.         int guangg;
  584.         cin>>guangg;
  585.         system("cls");
  586.         switch(guangg%4) {
  587.                 case 1:
  588.                         公开版已经删除。
  589.                         break;
  590.                 case 2:
  591.                         cout<<"
  592.             秘密之路,2020年3月制作,已经更新完成,欢迎找我下载,纯免费。"<<endl;
  593.                         cout<<"你是否要玩一下小游戏?输1开始,其他跳过"<<endl;
  594.                         int x;
  595.                         cin>>x;
  596.                         if(x==1)xiaoyou();
  597.                         break;
  598.                 case 0:
  599.                         cout<< "在洛谷,来我们的团队!https://www.luogu.com.cn/team/27254"<<endl;
  600.                         break;
  601.                 case 3:
  602.                         cout<<"此栏暂无广告,可以花2元在此放置自己的广告!(要求:广告字数需小于80;广告中不得拥有粗鲁、下流的语言,不得发布有政治敏感,针对某人的广告。"<<endl;
  603.                         break;
  604.         }
  605.         Sleep(15000);
  606.         cout<<"完成观看,获得了奖励:";
  607.         srand(unsigned(time(NULL)));
  608.         int n=rand()%200*2+30;
  609.         cout<<"获得"<<n<<"元。"<<endl;
  610.         money+=n;
  611.         Sleep(2888);
  612.         system("cls");
  613. }
  614. void jiazai() {
  615.         cout<<"加 载 中……0%"<<endl;
  616.         cout<<"_____________"<<endl;
  617.         cout<<"Loading......0prs"<<endl;
  618.         cout<<"小知识:怪物的血量和攻击都是随机且不可见的,如果运气不好请准备好再来!"<<endl;
  619.         srand(unsigned(time(NULL)));
  620.         Sleep(rand()%2000+1000);
  621.         system("cls");
  622.         cout<<"加 载 中……23%"<<endl;
  623.         cout<<"===__________"<<endl;
  624.         cout<<"Loading......23prs"<<endl;
  625.         cout<<"小知识:妇人会告诉你怎样通关游戏!"<<endl;
  626.         srand(unsigned(time(NULL)));
  627.         Sleep(rand()%2000+1000);
  628.         system("cls");
  629.         cout<<"加 载 中……51%"<<endl;
  630.         cout<<"=======______"<<endl;
  631.         cout<<"Loading......51prs"<<endl;
  632.         cout<<"小知识:如果实在没钱,可以看一段广告!广告时间十五秒!"<<endl;
  633.         srand(unsigned(time(NULL)));
  634.         Sleep(rand()%2000+1000);
  635.         system("cls");
  636.         cout<<"加 载 中……82%"<<endl;
  637.         cout<<"============_"<<endl;
  638.         cout<<"Loading......82prs"<<endl;
  639.         cout<<"小知识:1.6版本因bug移除了指针,如果还有bug请联系我"<<endl;
  640.         srand(unsigned(time(NULL)));
  641.         Sleep(rand()%2000+1000);
  642.         system("cls");
  643.         cout<<"加 载 中……100%"<<endl;
  644.         cout<<"============="<<endl;
  645.         cout<<"Loading......100prs"<<endl;
  646.         srand(unsigned(time(NULL)));
  647.         Sleep(rand()%2000+1000);
  648.         system("cls");
  649.         cout<<"游戏加载成功!"<<endl;
  650. }
  651. void xunlian() {
  652.         cout<<"正在训练,需要花费8秒………………"<<endl;
  653.         Sleep(8000);
  654.         srand(unsigned(time(NULL)));
  655.         int xz=rand()%12+3,gz=rand()%15+4;
  656.         if(nand>=2) {
  657.                 xz-=1*nand;
  658.                 gz-=2*nand;
  659.         }
  660.         if(xz<=0)xz=1;
  661.         if(gz<=0)gz=1;
  662.         cout<<"训练完成,精力-1,血量增加" <<xz<<",攻击增加"<<gz;
  663.         jingl--;
  664.         shengmingli+=xz;
  665.         gongjili+=gz;
  666. }
  667. void xiaoyou(){
  668.         cout<<"欢迎来到小游戏,你的收益:350金币已经到账。"<<endl;
  669.         money+=350;
  670.         int a1,a2,a3,a4,a5;//定义:输入的五个变量
  671.         cout<<"你是一个探险家,前面有5条路,你会选择:"<<endl;
  672.         cout<<"1.一条蜿蜒的小路"<<endl;
  673.         cout<<"2.一条大马路"<<endl;
  674.         cout<<"3.一条通往城市的路"<<endl;
  675.         cout<<"4.一条通往秘密小镇的路"<<endl;
  676.         cout<<"5.一条通往乡村的路"<<endl;
  677.         //============//
  678.         //初始定义结束//
  679.         //============//
  680.         cin>>a1;
  681.         switch(a1){
  682.         case 1 :cout<<"你选择了蜿蜒的小路"<<endl;
  683.                 cout<<"(剧情)你走了走,发现有一个古庙......"<<endl;
  684.                     cout<<"你要选择:" <<endl;
  685.                     cout<<"1.回到岔路口"<<endl;
  686.                     cout<<"2.走进去" <<endl;
  687.                     cin>>a2;
  688.                     switch(a2){
  689.                     case 1 :cout<<"你退了回去,但你已经饥肠辘辘,你饿死了。"<<endl;
  690.                                 cout<<"游戏结束"<<endl;break;
  691.                     case 2 :cout<<"你进了古庙,并没有收获。"<<endl;
  692.                                 cout<<"你走时看见了一块肉,你吃了,并睡了一晚。"<<endl;
  693.                                         cout<<"第二天......"<<endl;
  694.                                         cout<<"你醒了,请问你下一步要......"<<endl;
  695.                                         cout<<"1.随便走走"<<endl;
  696.                                         cout<<"2.回到岔路口"<<endl;
  697.                                         cin>>a3;
  698.                                         switch(a3){
  699.                                                 case 1 :cout<<"你随便走了走,回到了原点。"<<endl;
  700.                                                         cout<<"你已经饥肠辘辘了,你饿死了。"<<endl;
  701.                                                                 cout<<"游戏结束"<<endl;break;
  702.                                             case 2 :cout<<"你退了回去,但你已经饥肠辘辘,你饿死了。"<<endl;
  703.                                                         cout<<"游戏结束"<<endl;break;
  704.                                                 default:cout<<"error!"<<endl;
  705.                                         }break;
  706.                         default:cout<<"error!"<<endl;
  707.                     }break;
  708.         case 2 :cout<<"你选择了大马路"<<endl;
  709.                 cout<<"你走了走,因为缺水而死。"<<endl;
  710.                         cout<<"游戏结束"<<endl;break;
  711.         case 3 :cout<<"你选择了大城市"<<endl;
  712.                 cout<<"你下一步要......"<<endl;
  713.                         cout<<"1.成就一番事业"<<endl;
  714.                         cout<<"2.平凡生活"<<endl;
  715.                         cin>>a4;
  716.                         switch(a4){
  717.                                 case 1 :cout<<"你打算入股,你要选......"<<endl;
  718.                                         cout<<"1.瑞和股 市值1299.99一股,十股起步"<<endl;
  719.                                         cout<<"2.x股 市值50.45一股,十股起步"<<endl;
  720.                                                 cin>>a5;
  721.                                                 switch(a5){
  722.                                                         case 1 :cout<<"你大赚了一笔,触发了结局1......"<<endl;
  723.                                                                 cout<<"你解锁了成就“大富翁”"<<endl;break;
  724.                                                         case 2 :cout<<"你小赚了一笔,触发了结局2......"<<endl;
  725.                                                                 cout<<"你解锁了成就“快乐一生”"<<endl;break;
  726.                                                 }break;
  727.                                 case 2 :cout<<"你安乐度过了一生,触发了结局3......"<<endl;
  728.                                         cout<<"你解锁了成就“安乐公”"<<endl;break;
  729.                         }break;
  730.         case 4 :cout<<"你回到了秘密小镇."<<endl;break;
  731.         case 5 :cout<<"你选择了乡村小路"<<endl;
  732.                 cout<<"你发现了一个无人村......"<<endl;
  733.                         cout<<"请静待更新!"<<endl;break;
  734.         default:cout<<"error!"<<endl;
  735.     }
  736. }
  737. void jineng(){
  738.         cout<<"等待更新中.....";
  739. }
  740. //如果有任何疏漏请指出,我一定会修正!!!







  741. //请自创一个命名为pos的txt文件,并将里面清空!
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-2-9 21:08:05 | 显示全部楼层
  1. #include<iostream>
  2. #include<fstream>
  3. #include<time.h>
  4. #include<windows.h>
  5. using namespace std;

  6. class Game{
  7.         public:
  8.                 Game(){
  9.                         system("title 秘密小镇");
  10.                 }
  11.                
  12.                 void mainloop(){
  13.                         load();
  14.                         while(true){
  15.                                 system("cls");
  16.                                 cout << "选择:\n1.开始小镇\n2.保存并退出游戏\n3.读取存档" << endl;
  17.                                 choose = choose_one(3);
  18.                                 if(choose == 2){
  19.                                         save();
  20.                                         return;
  21.                                 }
  22.                                 else if(choose == 3){
  23.                                         if(read()){
  24.                                                 cout << "存档错误!" << endl;
  25.                                                 system("pause");
  26.                                                 continue;
  27.                                         }
  28.                                         if(vitality <= 0){
  29.                                                 cout << "该存档游戏已结束" << endl;
  30.                                                 system("pause");
  31.                                                 continue;
  32.                                         }
  33.                                 }
  34.                                 start_game();
  35.                         }
  36.                 }
  37.         private:
  38.                 int vitality;//定义主角初始生命力
  39.                 int difficulty;//定义难度
  40.                 int aggressivity;//定义主角初始攻击力
  41.                 int defense;//定义主角初始防御力
  42.                 int money;//定义主角初始金钱数量
  43.                 int energy;//定义主角精力,精力小于10会有几率死亡
  44.                 bool is_pass;//定义是否通关判定
  45.                 int choose;//定义选择
  46.                
  47.                 int choose_one(int end,bool clear = true){
  48.                         int n;
  49.                         while(true){
  50.                                 cout << "请选择:";
  51.                                 cin >> n;
  52.                                 if(n <= end&&n >= 1){
  53.                                         if(clear){
  54.                                                 system("cls");
  55.                                         }
  56.                                         return n;
  57.                                 }
  58.                                 cout << "输入错误!!!" << endl;
  59.                         }
  60.                 }
  61.                
  62.                 void load(){
  63.                         int len;
  64.                         for(int i = 0;i <= 100;i++){
  65.                                 system("cls");
  66.                                 cout << "加载中……" << i << "%" << endl;
  67.                                 len = i / 4;
  68.                                 for(int j = 0;j < len;j++){
  69.                                         cout << "=";
  70.                                 }
  71.                                 for(int j = 0;j + len < 25;j++){
  72.                                         cout << "-";
  73.                                 }
  74.                                 cout << endl;
  75.                                 if(i < 34){
  76.                                         cout << "妇人会告诉你怎样通关游戏!";
  77.                                 }
  78.                                 else if(i < 67){
  79.                                         cout << "如果实在没钱,可以看一段广告!";
  80.                                 }
  81.                                 else{
  82.                                         cout << "精力小于10会有概率暴毙哟!";
  83.                                 }
  84.                                 Sleep(1);
  85.                         }
  86.                         cout << "\r游戏加载成功!                " << endl;
  87.                         Sleep(3000);
  88.                 }
  89.                
  90.                 void save(){
  91.                         ofstream outfile;
  92.                         outfile.open("$pos");
  93.                         outfile << aggressivity << endl;
  94.                         outfile << money << endl;
  95.                         outfile << energy << endl;
  96.                         outfile << defense << endl;
  97.                         outfile << difficulty << endl;
  98.                         outfile.close();
  99.                 }
  100.                
  101.                 bool read(){
  102.                         ifstream infile;
  103.                         infile.open("$pos");
  104.                         if(!infile){
  105.                                 return true;
  106.                         }
  107.                         infile >> aggressivity;
  108.                         infile >> money;
  109.                         infile >> energy;
  110.                         infile >> defense;
  111.                         infile >> difficulty;
  112.                         infile.close();
  113.                         return false;
  114.                 }
  115.                
  116.                 void set(int vitality,int aggressivity,int defense,int money,int energy){
  117.                         this->vitality = vitality;
  118.                         this->aggressivity = aggressivity;
  119.                         this->defense = defense;
  120.                         this->money = money;
  121.                         this->energy = energy;
  122.                 }
  123.                
  124.                 void wuqidian(){
  125.                         cout<<"欢迎来到武器店!"<<endl;
  126.                         while(true){
  127.                                 cout<<"1.买小刀(10M加2攻击力)"<<endl;
  128.                                 cout<<"2.买短剑(80M加20攻击力)"<<endl;
  129.                                 cout<<"3.买大砍刀(140M加40攻击力)"<<endl;
  130.                                 cout<<"4.买双节棍(200M加60攻击力)"<<endl;
  131.                                 cout<<"5.买盾牌(60M加30防御力)"<<endl;
  132.                                 cout<<"6.买铠甲(100M加60防御力)"<<endl;
  133.                                 cout<<"7.离开武器店"<<endl;
  134.                                 int wuqidian = choose_one(7);
  135.                                 switch(wuqidian) {
  136.                                         case 1:
  137.                                                 if(money<10)
  138.                                                         cout<<"你的钱不够"<<endl;//钱不够时返回Flase
  139.                                                 else {
  140.                                                         cout<<"购买成功!"<<endl;//钱足够时返回True
  141.                                                         aggressivity+=2;
  142.                                                         money-=10;
  143.                                                 }
  144.                                                 break;
  145.                                         case 2:
  146.                                                 if(money<80)
  147.                                                         cout<<"你的钱不够"<<endl;
  148.                                                 else {
  149.                                                         cout<<"购买成功!"<<endl;
  150.                                                         aggressivity+=20;
  151.                                                         money-=80;
  152.                                                 }
  153.                                                 break;
  154.                                         case 3:
  155.                                                 if(money<140)
  156.                                                         cout<<"你的钱不够"<<endl;
  157.                                                 else {
  158.                                                         cout<<"购买成功!"<<endl;
  159.                                                         aggressivity+=40;
  160.                                                         money-=140;
  161.                                                 }
  162.                                                 break;
  163.                                         case 4:
  164.                                                 if(money<200)
  165.                                                         cout<<"你的钱不够"<<endl;
  166.                                                 else {
  167.                                                         cout<<"购买成功!"<<endl;
  168.                                                         aggressivity+=60;
  169.                                                         money-=200;
  170.                                                 }
  171.                                                 break;
  172.                                         case 5:
  173.                                                 if(money<60)
  174.                                                         cout<<"你的钱不够"<<endl;
  175.                                                 else {
  176.                                                         cout<<"购买成功!"<<endl;
  177.                                                         defense+=30;
  178.                                                         money-=60;
  179.                                                 }
  180.                                                 break;
  181.                                         case 6:
  182.                                                 if(money<100)
  183.                                                         cout<<"你的钱不够"<<endl;
  184.                                                 else {
  185.                                                         cout<<"购买成功!"<<endl;
  186.                                                         defense+=60;
  187.                                                         money-=100;
  188.                                                 }
  189.                                                 break;
  190.                                         case 7:
  191.                                                 cout<<"欢迎下次再来!"<<endl;
  192.                                                 system("pause");
  193.                                                 return;
  194.                                 }
  195.                                 system("pause");
  196.                                 system("cls");
  197.                         }
  198.                 }  /*  yaodian()的设置与wuqidian()相同,可参照阅读.  */
  199.                
  200.                 void yaodian() {
  201.                         cout<<"欢迎来到药品店!"<<endl;
  202.                         while(true){
  203.                                 cout<<"1.买1号补血药(10M加200生命和1精力)"<<endl;
  204.                                 cout<<"2.买2号补血药(50M加1000生命和6精力)"<<endl;
  205.                                 cout<<"3.买3号补血药(100M加2200生命和12精力)"<<endl;
  206.                                 cout<<"4.离开药店"<<endl;
  207.                                 int yaodian = choose_one(4);
  208.                                 switch(yaodian) {
  209.                                         case 1:
  210.                                                 if(money<10)
  211.                                                         cout<<"你的钱不够"<<endl;
  212.                                                 else {
  213.                                                         cout<<"购买成功!"<<endl;
  214.                                                         vitality+=200;
  215.                                                         money-=10;
  216.                                                         energy++;
  217.                                                 }
  218.                                                 break;
  219.                                         case 2:
  220.                                                 if(money<50)
  221.                                                         cout<<"你的钱不够"<<endl;
  222.                                                 else {
  223.                                                         cout<<"购买成功!"<<endl;
  224.                                                         vitality+=1000;
  225.                                                         money-=50;
  226.                                                         energy+=6;
  227.                                                 }
  228.                
  229.                                                 break;
  230.                                         case 3:
  231.                                                 if(money<100)
  232.                                                         cout<<"你的钱不够"<<endl;
  233.                                                 else  {
  234.                                                         cout<<"购买成功!"<<endl;
  235.                                                         vitality+=2200;
  236.                                                         money-=100;
  237.                                                         energy+=12;
  238.                                                 }
  239.                                                 break;
  240.                                         case 4:
  241.                                                 cout<<"欢迎下次再来!"<<endl;
  242.                                                 system("pause");
  243.                                                 return;
  244.                                 }
  245.                                 system("pause");
  246.                                 system("cls");
  247.                         }
  248.                 }

  249.                 void guaiwu1() {
  250.                         cout << "开始与小怪物战斗!!!" << endl;
  251.                         int g_vitality;//定义怪物生命
  252.                         int g_aggressivity;//定义怪物攻击力
  253.                         int g_defense;//定义怪物防御力
  254.                         int g_money;//定义怪物金钱
  255.                         int g_suiji;
  256.                         srand(unsigned(time(NULL)));
  257.                         g_vitality=rand()%100+300;
  258.                         g_aggressivity=rand()%100+30;
  259.                         g_defense=rand()%100+30;
  260.                         g_money=rand()%20+20;
  261.                         g_suiji = 0;
  262.                         int tongji1;//用来计算主角对怪物的杀伤
  263.                         int tongji2;//用来计算怪物对主角的杀伤
  264.                         int huihe = 1;//定义回合数
  265.                         while(true){
  266.                                 cout << endl << "现在是第" << huihe << "回合" << endl;
  267.                                 cout << "1.攻击\n2.逃跑" << endl;
  268.                                 int xuanze = choose_one(2,false);
  269.                                 switch(xuanze){
  270.                                         case 1:
  271.                                                 cout << "你对小怪物发动了攻击,精力-1" << endl;
  272.                                                 energy--;
  273.                                                 tongji1 = max(0,aggressivity * 2 - g_defense);
  274.                                                 g_vitality -= tongji1;
  275.                                                 cout << "你打掉了小怪物" << tongji1 << "点生命" << endl;
  276.                                                 cout << "小怪物还剩" << max(0,g_vitality) << "点生命" << endl;
  277.                                                 if(g_vitality <= 0){
  278.                                                         //杀死怪物后的返回
  279.                                                         cout << "小怪物被你杀死了" << endl;
  280.                                                         cout << "你挣了" << g_money << "M币" << endl;
  281.                                                         money += g_money;
  282.                                                         cout << "你精力大涨,精力+2" << endl;
  283.                                                         energy += 2;
  284.                                                         system("pause");
  285.                                                         return;
  286.                                                 }
  287.                                                 cout << "小怪物对你发动了攻击" << endl;
  288.                                                 if(!(huihe % 4) && difficulty > 4){
  289.                                                         cout<<"小怪物使用了技能“斩将”,你减少3000生命!"<<endl;
  290.                                                         vitality-=3000;
  291.                                                 }
  292.                                                 else{
  293.                                                         if(difficulty > 2){
  294.                                                                 srand(unsigned(time(NULL)));
  295.                                                                 g_suiji = rand()%111+5;
  296.                                                         }
  297.                                                         tongji2 = max(0,g_aggressivity * 2 - defense + g_suiji);
  298.                                                         vitality -= tongji2;
  299.                                                         cout << "小怪物打掉了你" << tongji2 << "点生命" << endl;
  300.                                                 }
  301.                                                 cout << "你还剩" << max(0,vitality) << "点生命" << endl;
  302.                                                 if(vitality <= 0){
  303.                                                         return;
  304.                                                 }
  305.                                                 break;
  306.                                         case 2:
  307.                                                 cout<<"你决定逃跑!"<<endl;
  308.                                                 if(rand()%30==1) {
  309.                                                         cout << "你在逃跑过程中扭伤了腿,精力-1,但";
  310.                                                         energy--;
  311.                                                 }
  312.                                                 cout << "逃跑成功!" << endl;
  313.                                                 system("pause");
  314.                                                 return;
  315.                                 }
  316.                                 huihe++;
  317.                         }
  318.                 }
  319.                
  320.                 void guaiwu2() {
  321.                         srand(unsigned(time(NULL)));
  322.                         cout<<"开始与大怪物战斗!!!"<<endl;
  323.                         cout<<"你与大怪物战斗,精力-1"<<endl;
  324.                         energy--;
  325.                         double g_vitality;
  326.                         int g_aggressivity;
  327.                         int g_defense;
  328.                         g_vitality=10000;
  329.                         g_aggressivity=210;
  330.                         g_defense=rand()%30+85;
  331.                         double tongji1;
  332.                         double tongji2;
  333.                         tongji1=0;
  334.                         tongji2=0;
  335.                         int huihe;
  336.                         huihe=1;
  337.                         cout<<"你开始对大怪物进行攻击!"<<endl;
  338.                         int xuanze;
  339.                         char xuan;
  340.                         while(g_vitality>0 && vitality>0 && xuanze!=2) {
  341.                                 srand(unsigned(time(NULL)));
  342.                                 int suiji=rand()%100+23,g_suiji=rand()%88+22;
  343.                                 cout<<"现在是第"<<huihe<<"回合!"<<endl;
  344.                                 cout<<"请选择你的动作:\n";
  345.                                 cout<<"1、攻击\n2、逃跑\n";
  346.                                 cin>>xuan;
  347.                                 xuanze=xuan-'0';
  348.                                 switch(xuanze) {
  349.                                         case 1:
  350.                                                 cout<<"你对大怪物发动了攻击!"<<endl;
  351.                                                 g_vitality-=int(aggressivity*3.5-g_defense+suiji);
  352.                                                 tongji1=int(aggressivity*3.5-g_defense+suiji);
  353.                                                 cout<<"你打掉了大怪物"<<tongji1<<"的生命!"<<endl;
  354.                                                 cout<<"大怪物还剩"<<max(0.0,g_vitality)<<"点生命"<<endl;
  355.                                                 if(g_vitality<=0) {
  356.                                                         cout<<"大怪物被你杀死了!你真厉害!!!"<<endl;
  357.                                                         is_pass=true;
  358.                                                         Sleep(3000);
  359.                                                         break;
  360.                                                 }
  361.                                                 vitality-=int(g_aggressivity*2-defense+g_suiji);
  362.                                                 tongji2=int(g_aggressivity*2-defense+g_suiji);
  363.                                                 cout<<"大怪物对你发动了攻击!"<<endl;
  364.                                                 if(huihe==4&&difficulty>4){
  365.                                                         cout<<"大怪物杀神附身,你一不小心被刀砍中,流血身亡。"<<endl;
  366.                                                         vitality=0;
  367.                                                 }
  368.                                                 else cout<<"大怪物打掉了你"<<tongji2<<"的生命!"<<endl;
  369.                                                 cout<<"你还剩"<<max(0,vitality)<<"点生命"<<endl;
  370.                                                 break;
  371.                                         case 2:
  372.                                                 cout<<"你决定逃跑!"<<endl;
  373.                                                 cout<<"大怪物把你吓到了,你还在逃跑时扭伤了腿,精力值减2"<<endl;
  374.                                                 energy-=2;
  375.                                                 continue;
  376.                                         default:
  377.                                                 cout<<"请不要乱选!"<<endl;
  378.                                 }
  379.                                 huihe++;
  380.                         }
  381.                         if(vitality<=0) {
  382.                                 cout<<"你被大怪物杀死了!游戏结束!!!"<<endl;
  383.                                 cout<<"即将返回主页面..."<<endl;
  384.                                 Sleep(3000);
  385.                         } else if(xuanze==2) {
  386.                                 cout<<"你逃回了小镇!"<<endl;
  387.                                 cout<<"即将返回小镇..."<<endl;
  388.                                 Sleep(3000);
  389.                         }
  390.                 }
  391.                
  392.                 void jiaotan() {
  393.                         cout<<"一个妇人:你好。(面无表情)"<<endl;
  394.                         cout<<"你要:\n1.说:“你怎么这么冷漠???\n2.说:“你也好。\n3.离开。"<<endl;
  395.                         int xuanze = choose_one(3);
  396.                         switch(xuanze) {
  397.                                 case 1:
  398.                                         cout<<"妇人:当然是为了试探你呀!"<<endl;
  399.                                         cout<<"你与妇人谈的很投合,妇人告诉你,杀了大怪物,就可以离开这里。"<<endl;
  400.                                         break;
  401.                                 case 2:
  402.                                         cout<<"妇人:嗯嗯,你想知道怎么离开这里吗?"<<endl;
  403.                                         cout<<"1.想 2.算了"<<endl;
  404.                                         xuanze = choose_one(2);
  405.                                         switch(xuanze) {
  406.                                                 case 1:
  407.                                                         cout<<"你与妇人谈的很投合,妇人告诉你,杀了大怪物,就可以离开这里。"<<endl;
  408.                                                         break;
  409.                                                 case 2:
  410.                                                         cout<<"妇人:哦,再见。"<<endl;
  411.                                                         break;
  412.                                         }
  413.                                         break;
  414.                         }
  415.                         if(xuanze<3&&xuanze>0)system("pause");
  416.                 }
  417.                
  418.                 void link() {
  419.                         srand(unsigned(time(NULL)));
  420.                         int guangg = rand()%4;
  421.                         switch(guangg){
  422.                                 case 0:
  423.                                         cout<< "在洛谷,来我们的团队!https://www.luogu.com.cn/team/27254" << endl;
  424.                                         break;
  425.                                 case 1:
  426.                                         cout<<"公开版已经删除。" << endl;
  427.                                         break;
  428.                                 case 2:
  429.                                         cout<<"秘密之路,2020年3月制作,已经更新完成,欢迎找我下载,纯免费。"<<endl;
  430.                                         cout<<"你是否要玩一下小游戏?输1开始,其他跳过"<<endl;
  431.                                         int x;
  432.                                         cin>>x;
  433.                                         if(x==1)xiaoyou();
  434.                                         break;
  435.                                 case 3:
  436.                                         cout<<"此栏暂无广告,可以花2元在此放置自己的广告!(要求:广告字数需小于80;广告中不得拥有粗鲁、下流的语言,不得发布有政治敏感,针对某人的广告。"<<endl;
  437.                                         break;
  438.                         }
  439.                         for(int i = 14;i >= 0;i--){
  440.                                 cout << "还剩" << i << "秒";
  441.                                 Sleep(1000);
  442.                                 cout << "\r";
  443.                         }
  444.                         srand(unsigned(time(NULL)));
  445.                         int n=rand()%200*2+30;
  446.                         cout<<"完成观看,获得"<<n<<"元。"<<endl;
  447.                         money+=n;
  448.                         system("pause");
  449.                 }
  450.                
  451.                 void xunlian(){
  452.                         cout<<"正在训练,需要花费8秒………………"<<endl;
  453.                         Sleep(8000);
  454.                         srand(unsigned(time(NULL)));
  455.                         int xz=rand()%12+3,gz=rand()%15+4;
  456.                         if(difficulty>=2) {
  457.                                 xz-=1*difficulty;
  458.                                 gz-=2*difficulty;
  459.                         }
  460.                         if(xz<1)xz=1;
  461.                         if(gz<1)gz=1;
  462.                         cout<<"训练完成,精力-1,血量增加" <<xz<<",攻击增加"<<gz;
  463.                         energy--;
  464.                         vitality+=xz;
  465.                         aggressivity+=gz;
  466.                         system("pause");
  467.                 }
  468.                
  469.                 void xiaoyou(){
  470.                         cout<<"欢迎来到小游戏,你的收益:350金币已经到账。"<<endl;
  471.                         money+=350;
  472.                         int a1,a2,a3;//定义:输入的三个变量
  473.                         cout<<"你是一个探险家,前面有5条路,你会选择:"<<endl;
  474.                         cout<<"1.一条蜿蜒的小路"<<endl;
  475.                         cout<<"2.一条大马路"<<endl;
  476.                         cout<<"3.一条通往城市的路"<<endl;
  477.                         cout<<"4.一条通往秘密小镇的路"<<endl;
  478.                         cout<<"5.一条通往乡村的路"<<endl;
  479.                         //============//
  480.                         //初始定义结束//
  481.                         //============//
  482.                         a1 = choose_one(5);
  483.                         switch(a1){
  484.                         case 1 :cout<<"你选择了蜿蜒的小路"<<endl;
  485.                                 cout<<"(剧情)你走了走,发现有一个古庙......"<<endl;
  486.                                     cout<<"你要选择:" <<endl;
  487.                                     cout<<"1.回到岔路口"<<endl;
  488.                                     cout<<"2.走进去" <<endl;
  489.                                     a2 = choose_one(2);
  490.                                     switch(a2){
  491.                                     case 1 :cout<<"你退了回去,但你已经饥肠辘辘,你饿死了。"<<endl;
  492.                                                 cout<<"游戏结束"<<endl;break;
  493.                                     case 2 :cout<<"你进了古庙,并没有收获。"<<endl;
  494.                                                 cout<<"你走时看见了一块肉,你吃了,并睡了一晚。"<<endl;
  495.                                                         cout<<"第二天......"<<endl;
  496.                                                         cout<<"你醒了,请问你下一步要......"<<endl;
  497.                                                         cout<<"1.随便走走"<<endl;
  498.                                                         cout<<"2.回到岔路口"<<endl;
  499.                                                         a3 = choose_one(2);
  500.                                                         switch(a3){
  501.                                                                 case 1 :cout<<"你随便走了走,回到了原点。"<<endl;
  502.                                                                         cout<<"你已经饥肠辘辘了,你饿死了。"<<endl;
  503.                                                                                 cout<<"游戏结束"<<endl;break;
  504.                                                             case 2 :cout<<"你退了回去,但你已经饥肠辘辘,你饿死了。"<<endl;
  505.                                                                         cout<<"游戏结束"<<endl;break;
  506.                                                         }break;
  507.                                     }break;
  508.                         case 2 :cout<<"你选择了大马路"<<endl;
  509.                                 cout<<"你走了走,因为缺水而死。"<<endl;
  510.                                         cout<<"游戏结束"<<endl;break;
  511.                         case 3 :cout<<"你选择了大城市"<<endl;
  512.                                 cout<<"你下一步要......"<<endl;
  513.                                         cout<<"1.成就一番事业"<<endl;
  514.                                         cout<<"2.平凡生活"<<endl;
  515.                                         a2 = choose_one(2);
  516.                                         switch(a2){
  517.                                                 case 1 :cout<<"你打算入股,你要选......"<<endl;
  518.                                                         cout<<"1.瑞和股 市值1299.99一股,十股起步"<<endl;
  519.                                                         cout<<"2.x股 市值50.45一股,十股起步"<<endl;
  520.                                                                 a3 = choose_one(2);
  521.                                                                 switch(a3){
  522.                                                                         case 1 :cout<<"你大赚了一笔,触发了结局1......"<<endl;
  523.                                                                                 cout<<"你解锁了成就“大富翁”"<<endl;break;
  524.                                                                         case 2 :cout<<"你小赚了一笔,触发了结局2......"<<endl;
  525.                                                                                 cout<<"你解锁了成就“快乐一生”"<<endl;break;
  526.                                                                 }break;
  527.                                                 case 2 :cout<<"你安乐度过了一生,触发了结局3......"<<endl;
  528.                                                         cout<<"你解锁了成就“安乐公”"<<endl;break;
  529.                                         }break;
  530.                         case 4 :cout<<"你回到了秘密小镇."<<endl;break;
  531.                         case 5 :cout<<"你选择了乡村小路"<<endl;
  532.                                 cout<<"你发现了一个无人村......"<<endl;
  533.                                         cout<<"请静待更新!"<<endl;break;
  534.                     }
  535.                     system("pause");
  536.                 }
  537.                
  538.                 void jineng(){
  539.                         cout << "等待更新中....." << endl;
  540.                         system("pause");
  541.                 }
  542.                
  543.                 void start_game(){
  544.                         is_pass = false;
  545.                         cout << "难度:\n1.简单\n2.正常\n3.精英\n4.噩梦\n5.挑战不可能" << endl;
  546.                         choose = choose_one(5);
  547.                         switch(choose){
  548.                                 case 1:
  549.                                         set(2500,140,250,65,20);
  550.                                         break;
  551.                                 case 2:
  552.                                         set(2150,115,180,45,20);
  553.                                         break;
  554.                                 case 3:
  555.                                         set(1890,90,145,25,20);
  556.                                         break;
  557.                                 case 4:
  558.                                         set(1500,75,120,15,20);
  559.                                         break;
  560.                                 case 5:
  561.                                         cout << "这是非常困难的,所以要做好准备!!!" << endl;
  562.                                         system("pause");
  563.                                         system("cls");
  564.                                         set(700,45,75,1000,15);
  565.                                         break;
  566.                         }
  567.                         difficulty = choose;
  568.                         while(true){
  569.                                 if(vitality <= 0){ //主角生命力小于等于0时游戏结束
  570.                                         cout << "你死啦!" << endl;
  571.                                         system("pause");
  572.                                         return;
  573.                                 }
  574.                                 if(energy < 10){
  575.                                         srand(unsigned(time(NULL)));
  576.                                         if(rand() % energy == 1){
  577.                                                 cout << "你精力不足,在散步的过程中吐血身亡了。" << endl;
  578.                                         }
  579.                                         system("pause");
  580.                                         return;
  581.                                 }
  582.                                 if(is_pass){
  583.                                         cout << "恭喜通关!" << endl;
  584.                                         system("pause");
  585.                                         return;
  586.                                 }
  587.                                 cout << "你来到了一个已有1000年的小镇。周围有一条河,有一片树林,很多房子和很多人" << endl;
  588.                                 cout << "有一家药店和一家武器店" << endl;
  589.                                 cout<<"1.去武器店"<<endl;
  590.                                 cout<<"2.去药品店"<<endl;
  591.                                 cout<<"3.去打小怪物"<<endl;
  592.                                 cout<<"4.去打大怪物"<<endl;
  593.                                 cout<<"5.退出游戏"<<endl;
  594.                                 cout<<"6.显示你的状态"<<endl;
  595.                                 cout<<"7.交谈"<<endl;
  596.                                 cout<<"8.看广告得随机奖励"<<endl;
  597.                                 cout<<"9.去训练场"<<endl;
  598.                                 cout<<"10.学习技能"<<endl;
  599.                                 choose = choose_one(10);
  600.                                 switch(choose){
  601.                                         case 1:
  602.                                                 wuqidian();
  603.                                                 break;
  604.                                         case 2:
  605.                                                 yaodian();
  606.                                                 break;
  607.                                         case 3:
  608.                                                 guaiwu1();
  609.                                                 break;
  610.                                         case 4:
  611.                                                 guaiwu2();
  612.                                                 break;
  613.                                         case 5:
  614.                                                 cout<<"欢迎下次来玩!!!!"<<endl;
  615.                                                 system("pause");
  616.                                                 return;
  617.                                         case 6:
  618.                                                 cout<<"你的生命力:"<<vitality<<endl;
  619.                                                 cout<<"你的攻击力:"<<aggressivity<<endl;
  620.                                                 cout<<"你的防御力:"<<defense<<endl;
  621.                                                 cout<<"你拥有的钱:"<<money<<endl;
  622.                                                 cout<<"你的精力:"<<energy<<endl;
  623.                                                 system("pause");
  624.                                                 break;
  625.                                         case 7:
  626.                                                 jiaotan();
  627.                                                 break;
  628.                                         case 8:
  629.                                                 if(difficulty > 3){
  630.                                                     cout << "此难度不开放广告!" << endl;
  631.                                                         system("pause");
  632.                                                         break;
  633.                                                 }
  634.                                                 link();
  635.                                                 break;
  636.                                         case 9:
  637.                                                 xunlian();
  638.                                                 break;
  639.                                         case 10:
  640.                                                 jineng();
  641.                                                 break;
  642.                                 }
  643.                                 system("cls");
  644.                         }
  645.                 }
  646. };

  647. int main(){
  648.         Game game;
  649.         game.mainloop();
  650.         return 0;
  651. }
复制代码

评分

参与人数 1鱼币 +1 收起 理由
ckg16 + 1 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-2-10 07:31:42 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-2-10 07:32:14 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 09:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表