现在的位置: 首页 > 综合 > 正文

大一新生用C++做的一个比较幼稚的游戏,,

2014年01月07日 ⁄ 综合 ⁄ 共 7715字 ⁄ 字号 评论关闭

这个比较幼稚,但是原创第一是吧~

 

下面是代码:

 

#include<iostream.h>
#include<stdlib.h>                                                           
int pblood=50,pmana=20,patake=20,pdefend=9,pgold=20,pexp=0,plvl=1,
 lvlupexp=30,judgenum=0,tst1=0,tst2=0,tst3=0;                       //定义玩家信息变量并初始化
                 //声名以下内容
void start();                   //游戏开始的函数
void judge();                   //判断流程的函数
void shop1();                   //第一个商店
void shop2();                   //第二个商店
void hotle();                   //旅馆
void boss();                   //关卡boss的函数
void end();                       //关卡完成的函数
void lvlup();                   //判断是否升级的函数
void skill();                   //玩家技能的函数
void cheat();                 //这是一个作弊的函数!!!O(∩_∩)O哈哈~
void disp();                   //输出基本信息的函数
void tst();                    //任务函数
//////////////////////////////////////////////////////////////////
void main()
{
 start();           //主函数
}
///////////////////////////////////////////////////////////////////
class monster              //建立一个怪物类
{
private:
 int mblood,matake,mdefend,mgold,mexp,mjudgenum;          //定义怪物信息的变量
public:
 monster(int,int,int,int,int,int);             //有6个参数的构造函数
 void fight();                  //声名与玩家战斗的函数
 void winget();                  //声名玩家胜利后的奖励的函数
 void monsterdrop();                 //怪物掉落物品
 void skill();
};

monster ma1(50,10,5,10,10,1);               //建立各个怪物
monster ma2(50,10,5,10,10,2);
monster ma3(50,10,5,10,10,3);
monster mb1(50,13,7,20,20,4);
monster mb2(70,20,10,20,20,5);
monster mb3(70,20,10,20,20,6);
monster mb4(70,20,10,20,20,7);
monster mb5(70,20,10,20,20,8);
monster mb6(70,20,10,20,20,9);
monster mc1(100,25,15,35,35,10);
monster mc2(100,25,15,35,35,11);
monster mc3(100,25,15,35,35,12);
monster md1(150,35,30,50,50,13);
monster md2(150,35,30,50,50,14);
monster md3(150,35,30,50,50,15);
monster md4(150,35,30,50,50,16);
monster md5(150,35,30,50,50,17);
monster md6(150,35,30,50,50,18);
monster boss1(200,50,50,100,100,19);

monster::monster(int a, int b, int c,int d, int e,int f)//定义构造函数
{
 mblood=a;matake=b;mdefend=c;mgold=d;mexp=e;mjudgenum=f;
}
void monster::winget()                           //定义玩家胜利后的奖励的函数
{
 cout<<endl<<"你赢了!获得经验和金币。"<<endl;
 pgold+=mgold;
 pexp+=mexp;
 disp();
 lvlup();
}
void monster::fight()       //定义与玩家战斗的函数
{
 while ((pblood>0) &&(mblood>0))
 {
  if (patake>mdefend)
  {
   mblood-=(patake-mdefend);
  }
  if (matake>pdefend)
  pblood-=(matake-pdefend);
  skill();
  cout<<"你的血量:"<<pblood<<"\t"<<"怪物血量"<<mblood<<endl;
 }
 if (pblood>=0)
 {
  judgenum=mjudgenum;
  winget();
  monsterdrop();
  tst();
  judge();
 }
 else
 {
  cout<<endl<<"GAME OVER!"<<endl;
 }
}
void monster::monsterdrop()
{
 int things=rand();
 cout<<things;                        //rand()不是随机数?
 switch (things/10000)
 {
 case 0: cout<<"怪物掉落了一个tst1,"<<endl; tst1++;break;
 case 1: cout<<"怪物掉落了一个tst2,"<<endl; tst2++;break;
 case 2: cout<<"怪物掉落了一个tst3,"<<endl; tst3++;break;
// case 3: cout<<"怪物掉落了一本经验书,使用后经验值增加10。"<<endl; pblood+=20;break;
 case 4:
  if (things%2==0)
  {
   cout<<"恭喜你,怪物掉落了怪物精华,服用后等级+1!"<<endl; pexp+=lvlupexp;
  }
  break;
 default : cout<<"很遗憾 怪物什么也没有掉落,再接再厉吧!"<<endl;
 }

}

void disp() //定义输出数据的函数
{
 cout<<endl<<"你的血量:"<<pblood<<endl<<"你的魔法:"<<pmana<<endl<<"你的攻击:"<<patake
  <<endl<<"你的防御:"<<pdefend<<endl<<"你的金币:"<<pgold<<endl<<"你的经验:"<<pexp<<
  endl<<"你的等级:"<<plvl<<endl;
}
void lvlup() //定义判断是否升级的函数
{
 if(pexp>=lvlupexp)
 {
  cout<<endl<<"你升级了!"<<endl;
  pexp-=lvlupexp;
  plvl++;
  patake+=5;
  pdefend+=4;
  pblood+=20;
  disp();
  lvlupexp+=10;
 }
}
void tst()
{
 if (tst1>=2)
 {
  cout<<"任务tst1完成!获得20金币"<<endl;pgold+=20;disp();
 }
 if (tst2>=2)
 {
  cout<<"任务tst2完成!获得20经验"<<endl;pexp+=20;disp();
 }
 if (tst3>=2)
 {
  cout<<"任务tst3完成!获得10攻击力"<<endl;patake+=10;disp();
 }
}

void  monster::skill()    //定义玩家技能
{
 int a,skillnum;
 cout<<"是否使用技能? 使用输入1,不使用输入其他。"<<endl;
 cin>>a;
 if (a==1)
 {
  cout<<"重击 伤害45 魔法消耗 5  代码1"<<endl;
  cout<<"火球 伤害100 魔法消耗 10  代码2"<<endl;
  cout<<"暴风雪 伤害180 魔法消耗 15  代码3"<<endl;
  cout<<"毁天灭地(究极技能) 伤害:秒杀怪物  魔法消耗:剩余魔法总量!代码4"<<endl;
  cin>>skillnum;
  switch (skillnum)
  {
  case 1:
   if (pmana>=5)
   {
    cout<<"你使用了重击,魔法消耗 5,怪物生命值-45。"<<endl; mblood-=45; pmana-=5;
   }
   else cout<<"魔法值不足!"<<endl;
   break;
  case 2:
   if (pmana>=10)
   {
    cout<<"你使用了火球,魔法消耗 10,怪物生命值-100。"<<endl; mblood-=100; pmana-=10;
   }
   else cout<<"魔法值不足!"<<endl;
   break;
  case 3:
   if (pmana>=15)
   {
    cout<<"你使用了暴风雪,魔法消耗 15,怪物生命值-180。"<<endl; mblood-=180; pmana-=15;
   }
   else cout<<"魔法值不足!"<<endl;
   break;
  case 4:
   if (pmana>0)
   {
    cout<<"你使用了毁天灭地(究极技能)魔法已经耗尽,怪物被秒杀。"<<endl; mblood=0; pmana=0;
   }
   break;
  default:;
  }

 }
}
void judge()  //定义判断流程的函数

 int way;        //定义输入岔路口的变量
 switch (judgenum)
 {
 
 case 1:
  
   cout<<endl<<"杀死了第一个怪物你遇到了一个两条道路的岔口,选哪条?"<<endl;
   cin>>way;
   if (way==1)
   {
    mb1.fight();
   }
   else mb2.fight();
  break;
 case 2:
  
   cout<<"杀死了第一个怪物你遇到了一个两条道路的岔口,选哪条?"<<endl;
   cin>>way;
   if (way==1)
   {
    mb3.fight();
   }
   else mb4.fight();
  break;
 case 3:
  
   cout<<"杀死了第一个怪物你遇到了一个两条道路的岔口,选哪条?"<<endl;
   cin>>way;
   if (way==1)
   {
    mb5.fight();
   }
   else mb6.fight();
  
  break;
 case 4:
 case 5:
 case 6:
 case 7:
 case 8:
 case 9:
  cout<<"杀死了第二个怪物 ";
  shop1();break;
 case 10:
  
   cout<<"杀死了第三个怪物你遇到了个两个路口的岔口,选哪条?"<<endl;
   cin>>way;
   if (way==1)
   {
    md1.fight();
   }
   else md2.fight();
  
  break;
 case 11:
  
   cout<<"杀死了第三个怪物你遇到了个两个路口的岔口,选哪条?"<<endl;
   cin>>way;
   if (way==1)
   {
    md3.fight();
   }
   else md4.fight();
  
  break;
 case 12:
  
   cout<<"杀死了第三个怪物你遇到了个两个路口的岔口,选哪条?"<<endl;
   cin>>way;
   if (way==1)
   {
    md5.fight();
   }
   else md6.fight();
  
  break;
 case 13:
 case 14:
 case 15:
 case 16:
 case 17:
 case 18:
  cout<<"杀死了第四个怪物 ";
  hotle();break;
 default: end();
 }
}
void start()  //定义游戏开始的函数
{
 int y;
 cout<<"         ★★★★ "<<endl;
 cout<<"本游戏由 ★羊羊★ 亲手制作,如有雷同 属于你抄我的!!"<<endl;
 cout<<"         ★★★★ "<<endl;
 cout<<"     ☆☆☆☆☆ 游戏开始 1☆☆☆☆☆"<<endl;
 cout<<"现在有三条道路选择哪条? 1.XX湖 2.XX森林 3.XX山"<<endl;
 cin>>y;
 switch (y)
 {
  case 1: ma1.fight();break;
  case 2: ma2.fight();break;
  default : ma3.fight();
 }
}

void shop1()  //定义第一个商店
{
 int a,b,c;
 cout<<"你遇到了一个小商店!"<<endl;
 while (pgold>=5)
 {
  cout<<endl<<"你现在有"<<pgold<<"金币是否进去看看?"<<endl;
  cout<<"看看输入1,不看输入任意其他键。";
  cin>>a;
  if (a==1)
  {
   cout<<"铁剑:攻击力+5! 价格:5金币。 代码1"<<endl;
   cout<<"铁盾:防御力+4! 价格:5金币。 代码2"<<endl;
   cout<<"血瓶:生命值+20! 价格:5金币。代码3"<<endl;
   cout<<"经验书:经验+10! 价格:5金币。 代码 其他。"<<endl;
   cin>>b;
   switch (b)
   {
   case 19940107: cout<<"你作弊了?! 你怎么知道的?"<<endl; cheat();break;
   case 1:pgold-=5;patake+=5;break;
   case 2:pgold-=5;pdefend+=4;break;
   case 3:pgold-=5;pblood+=20;break;
   default : pgold-=5;pexp+=10;break;
   }
   disp();
   lvlup();
  }
  else break;
 }
 cout<<"你又遇到了3岔路口,选哪条?";
 cin>>c;
 switch (c)
 {
 case 1: mc1.fight();break;
 case 2: mc2.fight();break;
 default : mc3.fight();
 }
}
void shop2()  //定义第二个商店
{
 cout<<"你遇到了一个大商店!";
 int a,b;
 while (pgold>=10)
 {
  cout<<"你现在有"<<pgold<<"金币是否进去看看?"<<endl;
  cout<<"看看输入1,不看输入任意其他键。";
  cin>>a;
  if (a==1)
  {
   cout<<"金剑:攻击力+10! 价格:10金币。 代码1"<<endl;
   cout<<"金盾:防御力+8! 价格:10金币。 代码2"<<endl;
   cout<<"大血瓶:生命值+50! 价格:10金币。代码3"<<endl;
   cout<<"超级经验书:经验+25! 价格:10金币。 代码 其他。"<<endl;
   cin>>b;
   switch (b)
   {
   case 1:pgold-=10;patake+=10;break;
   case 2:pgold-=10;pdefend+=8;break;
   case 3:pgold-=10;pblood+=50;break;
   default : pgold-=10;pexp+=25;break;
   }
   disp();
   lvlup();
  }
  else break;
 }
 boss();
}
void cheat()
{
 int ifcheat;
 cout<<"作弊多不好呀。。。你确定你要作弊么?"<<endl<<"确定作弊输入1,按其他键你还是好孩子!"<<endl;
 cin>>ifcheat;
 if (ifcheat==1)
 {
  cout<<"我靠!真没想到你是这种人!!真是看错你了!算了既然你这么想作弊 给你点好处吧。。。"<<"攻击力增加1000。防御力增加1000。"<<endl;
  patake+=1000;
  pdefend+=1000;
 }
 else cout<<"你还是好孩子~~~!";
}

void hotle() //定义旅馆函数
{
 while (pgold>=10)
 {
  cout<<"现在你遇到了一家旅店,是否花费10金币睡一觉,恢复50滴血,恢复10点魔法?"<<endl<<"是请输入1,否请输入其他任意键。"<<endl;
  int a;
  cin>>a;
  if (a==1)
  {
   pgold-=10;
   pblood+=50;
   pmana+=10;
   disp();
  }
  else break;
 }
 shop2();
}

void boss()  //定义BOSS函数
{
 cout<<"你历尽千辛万苦,终于见到了 叽里呱啦·奥斯特洛夫斯基·喜马拉雅·阿尔卑斯·马勒戈壁·羊驼·草泥马·雅蠛蝶·比克大魔王! 你现在要用尽全力击败他!"<<endl;
 boss1.fight();
}
void end()  //结束的函数
{
 cout<<"你终于打败了 叽里呱啦·奥斯特洛夫斯基·喜马拉雅·阿尔卑斯·马勒戈壁·羊驼·草泥马·雅蠛蝶·比克大魔王!  从此王子和公主过上了幸福快乐的生活~~~"<<endl;
 cout<<"第一章·未完待续。。。。。。。。"<<endl;
}

 

                                                         谢谢您的围观 羊羊

 

 

抱歉!评论已关闭.