社区应用 最新帖子 精华区 社区服务 会员列表 统计排行 社区论坛任务 迷你宠物
  • 2310阅读
  • 2回复

一个小游戏的源代码

级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
代码如下: P1zKsY,l$<  
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <string>
  4. using namespace std;
  5. int str[4],def[4],hp[8];
  6. int boss=1,l=1,mj=0,ycboss=0;
  7. int money=0;
  8. int yaopin[4];
  9. int yaopinqian[4];
  10. int wuqi[4],wuqiqian[4],wuqiz[4];
  11. int fangju[4],fangjuqian[4],fangjuz[4];
  12. int temp[3];
  13. int main(int argc, char *argv[])
  14. {
  15.   wuqiz[1]=wuqiz[2]=wuqiz[3]=wuqiz[4]=0;
  16.   fangjuz[1]=fangjuz[2]=fangjuz[3]=fangjuz[4]=0;
  17.   str[1]=def[1]=10;
  18.   hp[1]=hp[2]=40;
  19.   str[2]=def[2]=8;
  20.   hp[3]=hp[4]=30;
  21.   str[3]=def[3]=40;
  22.   hp[5]=hp[6]=200;
  23.   str[4]=def[4]=10000;
  24.   hp[7]=hp[8]=1000000;
  25.   temp[2]=temp[3]=0;
  26.   string d;
  27.   void prt(),prt2(),yudi(),boss2(),boss3();
  28.   void miji(),shiyong(),daoju(),zhuangtai();
  29.   yaopinqian[1]=40;
  30.   yaopinqian[2]=200;
  31.   yaopinqian[3]=500;
  32.   yaopinqian[4]=2000;
  33.   wuqiqian[1]=30;
  34.   wuqiqian[2]=200;
  35.   wuqiqian[3]=500;
  36.   wuqiqian[4]=1000;
  37.   fangjuqian[1]=20;
  38.   fangjuqian[2]=100;
  39.   fangjuqian[3]=500;
  40.   fangjuqian[4]=1000;
  41.   mj=0;
  42.   for (;boss!=0 || mj==1;)
  43.   {
  44.     if (mj==0) cout<<"打小怪=1 打boss=2 道具店=3 状态=c 退出=q"<<'\n';
  45.     if (mj==1) cout<<"打小怪=1 打boss=2 道具店=3 隐藏boss=4 状态=c 退出=q"<<'\n';
  46.     cin>>d;
  47.     if (d=="c") zhuangtai();
  48.     if (d=="m") miji();
  49.     if (d=="q") break;
  50.     if (d=="1") yudi();
  51.     if (d=="2") boss2();
  52.     if (d=="3") daoju();
  53.     if (d=="4" && mj==1) boss3();
  54.     if (hp[1]<=0) { cout<<"你死啦!";break;}
  55.   }
  56.   system("PAUSE");
  57.   return EXIT_SUCCESS;
  58. }
  59. void zhuangtai()
  60. {
  61.     cout<<"你的状态为:"<<'\n';
  62.     cout<<"hp="<<hp[1]<<"/"<<hp[2]<<'\n';
  63.     cout<<"str="<<str[1]<<"     "<<"def="<<def[1]<<'\n';
  64.     cout<<"武器:";
  65.     if (wuqiz[1]==1) cout<<"小刀";
  66.     if (wuqiz[2]==1) cout<<"阔刀";
  67.     if (wuqiz[3]==1) cout<<"血饮";
  68.     if (wuqiz[4]==1) cout<<"机关炮";
  69.     if (wuqiz[1]==0 && wuqiz[2]==0 && wuqiz[3]==0 && wuqiz[4]==0) cout<<"无";
  70.     cout<<"     "<<"防具:";
  71.     if (fangjuz[1]==1) cout<<"布衣";
  72.     if (fangjuz[2]==1) cout<<"皮衣";
  73.     if (fangjuz[3]==1) cout<<"锁甲";
  74.     if (fangjuz[4]==1) cout<<"板甲";
  75.     if (fangjuz[1]==0 && fangjuz[2]==0 && fangjuz[3]==0 && fangjuz[4]==0) cout<<"无";  
  76.     cout<<'\n';
  77.     cout<<"你有"<<money<<"金"<<'\n'<<'\n';
  78. }
  79. void prt()
  80. {
  81.   int tempmoney;
  82.   tempmoney=hp[4];
  83.   str[1]=str[1]+3;
  84.   def[1]=def[1]+3;
  85.   hp[1]=hp[2]=hp[2]+10;
  86.   cout<<"胜利!升级 str="<<str[1]<<" def="<<def[1]<<" hp="<<hp[2]<<'\n';
  87.   cout<<"得到"<<tempmoney<<"金"<<'\n'<<'\n';
  88.   money=money+tempmoney;
  89.   str[2]=str[2]+3;
  90.   def[2]=def[2]+4;
  91.   hp[3]=hp[4]=hp[2]*4/5;
  92. }
  93. void yudi()
  94. {
  95.   void shiyong();
  96.   string c;
  97.   int b;
  98.   hp[3]=hp[4];
  99.   cout<<"小怪出现 hp="<<hp[3]<<'\n';
  100.   do
  101.   {
  102.     cout<<"攻击=a 逃跑=b 使用道具=c"<<'\n';
  103.     cin>>c;
  104.     if (c=="a")
  105.     {
  106.       b=str[1]*2-def[2]*3/2+str[1]*4/def[2];
  107.       if (b<=0) b=1;
  108. cout<<"攻击! 怪物减少"<<b<<"滴血"<<'\n';
  109.       hp[3]=hp[3]-b;
  110.       if (hp[3]<=0) hp[3]=0;
  111.       cout<<"怪物还有"<<hp[3]<<"滴血"<<'\n';
  112.       if (hp[3]>0)
  113.       {
  114.         b=str[2]*2-def[1]*3/2+str[2]*4/def[1];
  115.         if (b<=0) b=1;
  116.         cout<<"怪物攻击! 减少"<<b<<"滴血"<<'\n';
  117.         hp[1]=hp[1]-b;
  118.         cout<<"人物还有"<<hp[1]<<"滴血"<<'\n'<<'\n';
  119.       }
  120.     }
  121.     if (c=="c")
  122.     {
  123.       shiyong();
  124.       b=str[2]*2-def[1]*3/2+str[2]*4/def[1];
  125.       if (b<=0) b=1;
  126.       cout<<"怪物攻击! 减少"<<b<<"滴血"<<'\n';
  127.       hp[1]=hp[1]-b;
  128.       cout<<"人物还有"<<hp[1]<<"滴血"<<'\n'<<'\n';
  129.     }
  130.     if (c=="b")
  131.     { cout<<"逃跑成功 hp+3"<<'\n';
  132.       hp[1]=hp[1]+3;
  133.       if (hp[1]>hp[2]) hp[1]=hp[2];
  134.       break;
  135.     }
  136.     if (hp[1]<=0) break;
  137.   } while (hp[3]>0);
  138.   if (hp[3]<=0) prt();
  139. }
  140. void boss2()
  141. {
  142.   void prt2();
  143.   void shiyong();
  144.   string c;
  145.   int b;
  146.   hp[5]=hp[6];
  147.   cout<<"boss出现 hp="<<hp[5]<<'\n';
  148.   do
  149.   {
  150.     cout<<"攻击=a 逃跑=b 使用道具=c"<<'\n';
  151.     cin>>c;
  152.     if (c=="a")
  153.     {
  154.       b=str[1]*2-def[3]*3/2+str[1]*4/def[3];
  155.       if (b<=0) b=1;
  156.       cout<<"攻击! boss减少"<<b<<"滴血"<<'\n';
  157.       hp[5]=hp[5]-b;
  158.       if (hp[5]<=0) hp[5]=0;
  159.       cout<<"boss还有"<<hp[5]<<"滴血"<<'\n';
  160.       if (hp[5]>0)
  161.       {
  162.         b=str[3]*2-def[1]*3/2+str[3]*4/def[1];
  163.         if (b<=0) b=1;
  164.         cout<<"boss攻击! 减少"<<b<<"滴血"<<'\n';
  165.         hp[1]=hp[1]-b;
  166.         cout<<"人物还有"<<hp[1]<<"滴血"<<'\n'<<'\n';
  167.       }
  168.     }
  169.     if (c=="c")
  170.     {
  171.       shiyong();
  172.       b=str[3]*2-def[1]*3/2+str[3]*4/def[1];
  173.       if (b<=0) b=1;
  174.       cout<<"boss攻击! 减少"<<b<<"滴血"<<'\n';
  175.       hp[1]=hp[1]-b;
  176.       cout<<"人物还有"<<hp[1]<<"滴血"<<'\n'<<'\n';
  177.     }
  178.     if (c=="b")
  179.     { cout<<"逃跑成功 hp+3"<<'\n';
  180.       hp[1]=hp[1]+3;
  181.       if (hp[1]>hp[2]) hp[1]=hp[2];
  182.       break;
  183.     }
  184.     if (hp[1]<=0) break;
  185.   } while (hp[5]>0);
  186.   if (hp[5]<=0) prt2();
  187. }
  188. void prt2()
  189. {
  190.   int tempmoney;
  191.   cout<<"太帅了!打赢总boss,游戏结束"<<'\n';
  192.   boss=0;
  193.   if (mj==1)
  194.   { tempmoney=hp[6];
  195.     str[1]=str[1]+10;
  196.     def[1]=def[1]+10;
  197.     hp[1]=hp[1]+10;
  198.     cout<<"胜利!升级 str="<<str[1]<<" def="<<def[1]<<" hp="<<hp[2]<<'\n';
  199.     cout<<"得到"<<tempmoney<<"金"<<'\n'<<'\n';
  200.     str[3]=str[3]+10;
  201.     def[3]=def[3]+10;
  202.     hp[6]=hp[5]=hp[6]+10;
  203.     money=money+200;
  204.   }
  205. }
  206. void miji()
  207. {
  208.     cout<<"秘籍模式开启!";
  209.     mj=1;
  210. }
  211. void boss3()
  212. {
  213.   void prt3();
  214.   void shiyong();
  215.   string c;
  216.   int b;
  217.   hp[7]=hp[8]=1000000;
  218.   cout<<"Zn出现 hp="<<hp[7]<<'\n';
  219.   do
  220.   {
  221.     cout<<"攻击=a 逃跑=b 使用道具=c"<<'\n';
  222.     cin>>c;
  223.     if (c=="a")
  224.     {
  225.       b=str[1]*2-def[4]*3/2+str[1]*4/def[4];
  226.       if (b<=0) b=1;
  227.       cout<<"攻击! Zn减少"<<b<<"滴血"<<'\n';
  228.       hp[7]=hp[7]-b;
  229.       if (hp[7]<=0) hp[7]=0;
  230.       cout<<"Zn还有"<<hp[7]<<"滴血"<<'\n';
  231.       if (hp[7]>0)
  232.       {
  233.         b=str[4]*2-def[1]*3/2+str[4]*4/def[1];
  234.         if (b<=0) b=1;
  235.         cout<<"Zn攻击! 减少"<<b<<"滴血"<<'\n';
  236.         hp[1]=hp[1]-b;
  237.         cout<<"人物还有"<<hp[1]<<"滴血"<<'\n'<<'\n';
  238.       }
  239.     }
  240.     if (c=="c")
  241.     {
  242.       shiyong();
  243.       b=str[4]*2-def[1]*3/2+str[4]*4/def[1];
  244.         if (b<=0) b=1;
  245.       cout<<"Zn攻击! 减少"<<b<<"滴血"<<'\n';
  246.       hp[1]=hp[1]-b;
  247.       cout<<"人物还有"<<hp[1]<<"滴血"<<'\n'<<'\n';
  248.     }
  249.     if (c=="b")
  250.     { cout<<"逃跑成功 hp+3"<<'\n';
  251.       hp[1]=hp[1]+3;
  252.       if (hp[1]>hp[2]) hp[1]=hp[2];
  253.       break;
  254.     }
  255.     if (hp[1]<=0) break;
  256.   } while (hp[7]>0);
  257.   if (hp[7]<=0) prt3();
  258. }
  259. void daoju()
  260. {
  261.   void yaopind();
  262.   void wuqid();
  263.   void fangjud();
  264.   string b;
  265.   cout<<"药品=1"<<'\n'<<"武器=2"<<'\n'<<"防具=3"<<'\n';
  266.   cin>>b;
  267.   if (b=="1") yaopind();
  268.   if (b=="2") wuqid();
  269.   if (b=="3") fangjud();
  270.   if (b!="1" && b!="2" && b!="3") cout<<"错误!"<<'\n'<<'\n';
  271. }
  272. void yaopind()
  273. {
  274.   string b;
  275.   int c,e=0,f;
  276.   cout<<"小补药=1 40$ hp+30"<<'\n';
  277.   cout<<"大补药=2 200$ hp+100"<<'\n';
  278.   cout<<"全恢复药=3 500$ hp+100%"<<'\n';
  279.   cout<<"神奇水=4 2000$ ???"<<'\n';
  280.   cout<<"退出=q"<<'\n';
  281.   cin>>b;
  282.   if (b=="q") e=1;
  283.   if (b!="1" && b!="2" && b!="3" && b!="4" && b!="q") e=2;
  284.   if (e==2) cout<<"输入错误!"<<'\n'<<'\n';
  285.   else {
  286.         if (e!=1)
  287.         {
  288.         cout<<"要多少个"<<'\n';
  289.         cin>>c;
  290.         if (c<=0)
  291.         {
  292.           for(;;)
  293.           {
  294.             cout<<"重新输入"<<'\n';
  295.             cin>>c;
  296.             if (c>0) break;
  297.           }
  298.         }
  299.         if (b=="1") f=1;
  300.         if (b=="2") f=2;
  301.         if (b=="3") f=3;
  302.         if (b=="4") f=4;
  303.         if (money<yaopinqian[f]*c) cout<<"失败"<<'\n'<<'\n';
  304.         else { money=money-yaopinqian[f]*c;
  305.         yaopin[f]=yaopin[f]+c;
  306.         cout<<"购买成功"<<'\n'<<'\n'; }
  307.         }
  308.         else cout<<"退出!"<<'\n'<<'\n';
  309.       }
  310. }
  311. void wuqid()
  312. {
  313.   wuqi[1]=10;
  314.   wuqi[2]=20;
  315.   wuqi[3]=50;
  316.   wuqi[4]=80;
  317.   int e=0,f;
  318.   string b;
  319.   cout<<"小刀=1 30$ str+10"<<'\n';
  320.   cout<<"阔刀=2 200$ str+20"<<'\n';
  321.   cout<<"血饮=3 500$ str+50"<<'\n';
  322.   cout<<"机关炮=4 1000$ str+80"<<'\n';
  323.   cout<<"退出=q"<<'\n';
  324.   cin>>b;
  325.   if (b=="q") e=1;
  326.   if (b!="1" && b!="2" && b!="3" && b!="4" && b!="q") e=2;
  327.   if (e==2) cout<<"输入错误!"<<'\n'<<'\n';
  328.   else {
  329.         if (e!=1)
  330.         {
  331.         if (b=="1") f=1;
  332.         if (b=="2") f=2;
  333.         if (b=="3") f=3;
  334.         if (b=="4") f=4;
  335.         if (money<wuqiqian[f]) cout<<"失败"<<'\n'<<'\n';
  336.         else { money=money-wuqiqian[f];
  337.               wuqiz[1]=wuqiz[2]=wuqiz[3]=wuqiz[4]=0;
  338.               wuqiz[f]=1;
  339.               str[1]=str[1]+wuqi[f]-temp[2];
  340.               temp[2]=wuqi[f];
  341.               cout<<"购买成功"<<'\n'<<'\n'; }
  342.         }
  343.         else cout<<"退出!"<<'\n'<<'\n';
  344.       }
  345. }
  346. void fangjud()
  347. {
  348.   int e=0,f;
  349.   string b;
  350.   fangju[1]=5;
  351.   fangju[2]=15;
  352.   fangju[3]=30;
  353.   fangju[4]=50;
  354.   cout<<"布衣=1 20$ def+5"<<'\n';
  355.   cout<<"皮衣=2 100$ def+15"<<'\n';
  356.   cout<<"锁甲=3 500$ def+30"<<'\n';
  357.   cout<<"板甲=4 1000$ def+50"<<'\n';
  358.   cout<<"退出=q"<<'\n';
  359.   cin>>b;
  360.   if (b=="q") e=1;
  361.   if (b!="1" && b!="2" && b!="3" && b!="4" && b!="q") e=2;
  362.   if (e==2) cout<<"输入错误!"<<'\n'<<'\n';
  363.   else {
  364.         if (e!=1)
  365.         {
  366.         if (b=="1") f=1;
  367.         if (b=="2") f=2;
  368.         if (b=="3") f=3;
  369.         if (b=="4") f=4;
  370.         if (money<fangjuqian[f]) cout<<"失败"<<'\n'<<'\n';
  371.         else { money=money-fangjuqian[f];
  372.               fangjuz[1]=fangjuz[2]=fangjuz[3]=fangjuz[4]=0;
  373.               fangjuz[f]=1;
  374.               def[1]=def[1]+fangju[f]-temp[3];
  375.               temp[3]=fangju[f];
  376.               cout<<"购买成功"<<'\n'<<'\n'; }
  377.             }
  378.         else cout<<"退出!"<<'\n'<<'\n';
  379.       }
  380. }
  381. void shiyong()
  382. {
  383.   cout<<"1 小补药有"<<yaopin[1]<<"个"<<'\n';
  384.   cout<<"2 大补药有"<<yaopin[2]<<"个"<<'\n';
  385.   cout<<"3 全恢复药有"<<yaopin[3]<<"个"<<'\n';
  386.   cout<<"4 神奇水有"<<yaopin[4]<<"个"<<'\n';
  387.   int c;
  388.   cout<<"使用药品=";
  389.   cin>>c;
  390.   if (yaopin[c]==0) cout<<"失败!!!!"<<'\n'<<'\n';
  391.   else
  392.   { yaopin[c]--;
  393.     switch ©
  394.     {
  395.         case 1:cout<<"hp恢复30"<<'\n';hp[1]=hp[1]+30;
  396.         if (hp[1]>hp[2]) hp[1]=hp[2];
  397.         break;
  398.         case 2:cout<<"hp恢复100"<<'\n';hp[1]=hp[1]+100;
  399.         if (hp[1]>hp[2]) hp[1]=hp[2];
  400.         break;
  401.         case 3:cout<<"hp全恢复"<<'\n';hp[1]=hp[2];
  402.         break;
  403.         case 4:cout<<"爆豆啦!"<<'\n';str[1]=str[1]+100000;
  404.         hp[1]=99999;
  405.         break;
  406.     }
  407.   }
  408. }
  409. void prt3()
  410. {
  411.   cout<<"太帅了!打赢Zn,游戏结束"<<'\n';
  412.   boss=0;
  413.   if (mj=1)
  414.   { str[1]=str[1]+1000;
  415.     def[1]=def[1]+1000;
  416.     hp[1]=hp[1]+1000;
  417.     cout<<"胜利!升级 str="<<str[1]<<" def="<<def[1]<<" hp="<<hp[2]<<'\n';
  418.     str[4]=str[4]+10000;
  419.     def[4]=def[4]+10000;
  420.     money=money+20000;
  421.     cout<<"得到20000金"<<'\n'<<'\n';
  422.   }
  423. }
~oI1 zNz/  
在dev-c++运行
评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
级别: 经院高中
发帖
369
铜板
3800
人品值
215
贡献值
0
交易币
0
好评度
305
信誉值
0
金币
0
所在楼道
只看该作者 1 发表于: 2006-06-11
C++江湖? 3}@_hS"^8  
GN!qyT  
变量定义的够直白的......
级别: 终身会员
发帖
3743
铜板
8
人品值
493
贡献值
9
交易币
0
好评度
3746
信誉值
0
金币
0
所在楼道
只看该作者 2 发表于: 2006-06-11
呵呵
描述
快速回复

您目前还是游客,请 登录注册
如果您在写长篇帖子又不马上发表,建议存为草稿
认证码:
验证问题:
3+5=?,请输入中文答案:八 正确答案:八