这个比较幼稚,但是原创第一是吧~
下面是代码:
#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;
}
谢谢您的围观 羊羊