//main.cpp
#include "zhujiao.h"
#include "guaiwu.h"
#include "shangdian.h"
#include <iostream>
using namespace std;
int main()
{
zhujiao ZJ; //主角实例
guaiwu GW; //怪物实例
shangdian WP; //商店实例
char DTE;//DTE大厅选择
int G;//怪物区选择
int E;//E战斗选择
char DIE;//死亡选择
int JN;//选择技能
int SP;//选择商品
int WPX;//物品选择
int W;//物品循环5次显示
int Z;//物品13次循环?
int X;//大厅的物品输入
int i,n=0; //循环
for(n=1;n<=12;n++)
WP.WP[n]=0;
DT:cout<<"****************本游戏仅供娱乐******************************"<<endl;
cout<<"--大厅"<<endl;
cout<<"--怪物森林<G>--天堂<T>--商店<S>--物品<W>--个人状态<O>"<<endl;
cin>>DTE;
if(DTE=='W')
{system("cls");
cout<<"*--------------------------------------------------*"<<endl;
for(W=1;W<=5;W++)
{
for(Z=1;Z<=12;Z++)
{
if(ZJ.B[W]==WP.WPM[Z])
cout<<"--<"<<W<<">"<<ZJ.B[W]<<"("<<WP.WP[Z]<<")"<<endl;
}
}
cout<<"--<0>返回"<<endl;
cout<<"*--------------------------------------------------*"<<endl;
cin>>X;
if(X==0)goto DT;
for(Z=1;Z<=12;Z++)
{
if(ZJ.B[X]==WP.WPM[Z])
{
if(Z>0 && Z<3)
{
ZJ.HP+=WP.WPZ[Z];
if(ZJ.HP>ZJ.ALL_HP)
ZJ.HP=ZJ.ALL_HP;
WP.WP[Z]--;
}
if(Z>2 && Z<5)
{
ZJ.MP+=WP.WPZ[Z];
if(ZJ.MP>ZJ.ALL_MP)
ZJ.MP=ZJ.ALL_MP;
WP.WP[Z]--;
}
if(Z>4 && Z<7)
{
ZJ.HP+=WP.WPZ[Z];
ZJ.MP+=WP.WPZ[Z];
if(ZJ.MP>ZJ.ALL_MP)
ZJ.MP=ZJ.ALL_MP;
if(ZJ.HP>ZJ.ALL_HP)
ZJ.HP=ZJ.ALL_HP;
WP.WP[Z]--;
}
if(Z>6 && Z<10)
{
for(n=1;n<=12;n++)
{
if(ZJ.ZB[1]==WP.WPM[n])
ZJ.AT-=WP.WPZ[n];break;
}
ZJ.AT+=WP.WPZ[Z];
ZJ.ZB[1]=WP.WPM[Z];
cout<<"已经装备此物品"<<endl;
WP.WP[Z]--;
}
if(Z>9 && Z<13)
{
for(n=1;n<=12;n++)
{
if(ZJ.ZB[1]==WP.WPM[n])
ZJ.FY-=WP.WPZ[n];break;
}
ZJ.FY+=WP.WPZ[Z];
ZJ.ZB[2]=WP.WPM[Z];
cout<<"已经装备此物品"<<endl;
WP.WP[Z]--;
}
if(WP.WP[Z]==0)
ZJ.B[X]="空";
goto DT;
}
}
}
if(DTE=='S')
{
system("cls");
WP.XS();
cout<<"金钱:"<<ZJ.RMB<<endl;
cout<<"购买:";
cin>>SP;
if(SP==0)goto DT;
if(ZJ.RMB>=WP.WPR[SP])
{
for(i=1;i<=5;i++)
{
if(ZJ.B[i]==WP.WPM[SP])
{
cout<<"购买"<<WP.WPM[SP]<<"成功!"<<endl;
WP.WP[SP]++;
goto DT;
}
if(ZJ.B[i]=="空")
{
cout<<"购买"<<WP.WPM[SP]<<"成功!"<<endl;
WP.WP[SP]=1;
ZJ.RMB-=WP.WPR[SP];
ZJ.B[i]=WP.WPM[SP];
cout<<"返回大厅"<<endl;
goto DT;
}
}
for(i=1;i<=5;i++)
if(ZJ.B[i]!="空" && ZJ.B[i]!=WP.WPM[SP])
{
cout<<"你的包已经满了"<<endl;
goto DT;
}
}
if(ZJ.RMB<=WP.WPR[SP])
{
system("cls");
cout<<"你的金钱不够..."<<endl;
cout<<"返回大厅"<<endl;
goto DT;
}
}
if(DTE=='G' && ZJ.HP==0){cout<<"死了还敢来,快去复活吧!"<<endl;goto DT;}
if(DTE=='G' && ZJ.HP!=0)
{
GWSL:cout<<"--初级怪物区<1>"<<"--中级怪物区<2>"<<"--高级怪物区<3>--"<<"返回大厅<0>"<<endl;
cin>>G;
if(G==0) goto DT;
GW.ALL_HP=GW.HP=60*G;
GW.AT=10*G;
GW.RMB=10*G;
GW.EXP=7*G;
ZD:cout<<"*--------------------------------------------------*"<<endl;
cout<<" 怪物HP:"<<GW.HP<<"/"<<GW.ALL_HP<<" ";
cout<<"人物HP:"<<ZJ.HP<<"/"<<ZJ.ALL_HP<<endl;
cout<<" | ";
cout<<"SP:"<<ZJ.MP<<"/"<<ZJ.ALL_MP<<endl;
cout<<"*--------------------------------------------------*"<<endl;
if(GW.HP==0 || GW.HP<0)
{
ZJ.EXP+=GW.EXP;
ZJ.RMB+=GW.RMB;
cout<<"怪物死亡!"<<endl;
cout<<"增加"<<GW.EXP<<"点经验值."<<endl;
cout<<"增加"<<GW.RMB<<"金钱."<<endl;
if(ZJ.EXP==ZJ.ALL_EXP || ZJ.EXP>ZJ.ALL_EXP)
{
ZJ.LV++;
ZJ.ALL_EXP+=ZJ.EXP;
ZJ.EXP=0;
ZJ.AT+=ZJ.LV;
ZJ.FY+=ZJ.LV;
ZJ.ALL_HP=ZJ.ALL_HP+ZJ.LV*10;
ZJ.ALL_MP=ZJ.ALL_MP+ZJ.LV*5;
cout<<"恭喜您升级!"<<endl;
cout<<"生命值上限增加"<<ZJ.LV*10<<endl;
cout<<"魔法值上限增加"<<ZJ.LV*5<<endl;
cout<<"攻击力增加"<<ZJ.LV<<endl;
cout<<"防御增加"<<ZJ.LV<<endl;
}
cout<<"返回怪物森林..."<<endl;
GW.ALL_HP=60;
goto GWSL;
}
if(ZJ.HP<0 || ZJ.HP==0)
{
cout<<"恭喜您已经被怪物削死!"<<endl;
cout<<"你可以去到<天堂>花金钱复活."<<endl;
ZJ.MP=ZJ.HP=0;
GW.ALL_HP=60;
goto DT;
}
cout<<"--攻击<1>--技能<2>--物品<3>--逃跑<0>"<<endl;
cin>>E;
switch(E)
{
case 1:
GW.HP-=ZJ.AT;
ZJ.HP=ZJ.HP-(GW.AT-ZJ.FY);system("cls");
goto ZD;
case 2:
cout<<"--白菜<1>--鸡蛋<2>--大哥<3>--返回<0>"<<endl;
cin>>JN;
if(ZJ.MP>=ZJ.JN[JN])
{
if(JN==1){system("cls");
cout<<"掏出几棵大白菜砸向怪物,怪物因此被你削掉"<<ZJ.JN[JN]*JN<<"点生命值."<<endl;}
if(JN==2){system("cls");
cout<<"刚偷来的鸡蛋砸向怪物,怪物因此被你削掉"<<ZJ.JN[JN]*JN<<"点生命值."<<endl;}
if(JN==3){system("cls");
cout<<"大哥叫了几个百个小弟er给怪物这顿揍...#$%^&*怪物因此被你几百个小弟er削掉"<<ZJ.JN[JN]*JN<<"点生命值."<<endl;}
ZJ.MP-=ZJ.JN[JN];
GW.HP=GW.HP-ZJ.JN[JN]*JN;
ZJ.HP=ZJ.HP-(GW.AT-ZJ.FY);
goto ZD;
}
if(ZJ.MP<ZJ.JN[JN])
{
system("cls");
cout<<"没有足够的魔法值."<<endl;
goto ZD;
}
if(JN==0)goto ZD;
case 3:
system("cls");
cout<<"*--------------------------------------------------*"<<endl;
for(W=1;W<=5;W++)
{
for(Z=1;Z<=12;Z++)
{
if(ZJ.B[W]==WP.WPM[Z])
cout<<"--<"<<W<<">"<<ZJ.B[W]<<"("<<WP.WP[Z]<<")"<<endl;
}
}
cout<<"--<0>返回"<<endl;
cout<<"*--------------------------------------------------*"<<endl;
cin>>WPX;
if(WPX==0)goto ZD;
for(Z=1;Z<=12;Z++)
{
if(ZJ.B[WPX]==WP.WPM[Z])
{
if(Z>0 && Z<3)
{
ZJ.HP+=WP.WPZ[Z];
if(ZJ.HP>ZJ.ALL_HP)
ZJ.HP=ZJ.ALL_HP;
WP.WP[Z]--;
}
if(Z>2 && Z<5)
{
ZJ.MP+=WP.WPZ[Z];
if(ZJ.MP>ZJ.ALL_MP)
ZJ.MP=ZJ.ALL_MP;
WP.WP[Z]--;
}
if(Z>4 && Z<7)
{
ZJ.HP+=WP.WPZ[Z];
ZJ.MP+=WP.WPZ[Z];
if(ZJ.MP>ZJ.ALL_MP)
ZJ.MP=ZJ.ALL_MP;
if(ZJ.HP>ZJ.ALL_HP)
ZJ.HP=ZJ.ALL_HP;
WP.WP[Z]--;
}
if(Z>6 && Z<10)
{
for(n=1;n<=12;n++)
{
if(ZJ.ZB[1]==WP.WPM[n])
ZJ.AT-=WP.WPZ[n];break;
}
ZJ.AT+=WP.WPZ[Z];
ZJ.ZB[1]=WP.WPM[Z];
cout<<"已经装备此物品"<<endl;
WP.WP[Z]--;
}
if(Z>9 && Z<13)
{
for(n=1;n<=12;n++)
{
if(ZJ.ZB[1]==WP.WPM[n])
ZJ.FY-=WP.WPZ[n];break;
}
ZJ.FY+=WP.WPZ[Z];
ZJ.ZB[2]=WP.WPM[Z];
cout<<"已经装备此物品"<<endl;
WP.WP[Z]--;
}
if(WP.WP[Z]==0)
ZJ.B[WPX]="空";
goto ZD;
}
}
goto ZD;
case 0:
cout<<"逃往大厅..."<<endl;
GW.ALL_HP=60;
goto DT;
};
}
if(DTE=='T' && ZJ.HP==0 && ZJ.RMB>0)
{
cout<<"超人:"<<endl;
cout<<"花费你现有金钱一半才能复活,山炮!"<<endl;
cout<<"现有金钱:"<<ZJ.RMB<<endl;
cout<<"--是<Y>"<<endl;
cin>>DIE;
if(DIE=='Y')
{
ZJ.HP=ZJ.ALL_HP;
ZJ.MP=ZJ.ALL_MP;
ZJ.RMB-=ZJ.RMB/2;
cout<<"已经复活,返回大厅..."<<endl;
GW.ALL_HP=60;
goto DT;
}
}
if(DTE=='T' && ZJ.HP!=0)
{ system("cls");
cout<<"超人:"<<endl;
cout<<"你没死呢~"<<endl;
cout<<"你想找死吖`山炮...@#$%^&**%^# Out!`` "<<endl;
GW.ALL_HP=60;
goto DT;
}
if(DTE=='T' && ZJ.HP==0 && ZJ.RMB<=0)
{cout<<"你现有金钱为:"<<ZJ.RMB<<endl;
cout<<"你可以结束游戏了..."<<endl;
goto bye;}
if(DTE=='O')
{
system("cls");
cout<<"*******************************************************"<<endl;
cout<<"等级:"<<ZJ.LV<<endl;
cout<<"生命值:"<<ZJ.HP<<"/"<<ZJ.ALL_HP<<endl;
cout<<"精神力:"<<ZJ.MP<<"/"<<ZJ.ALL_MP<<endl;
cout<<"攻击:"<<ZJ.AT<<" 武器:"<<ZJ.ZB[1]<<endl;
cout<<"防御:"<<ZJ.FY<<" 盔甲:"<<ZJ.ZB[2]<<endl;
cout<<"经验值:"<<ZJ.EXP<<"/"<<ZJ.ALL_EXP<<endl;
cout<<"金钱:"<<ZJ.RMB<<endl;
cout<<"技能:白菜(说明:消耗20点魔法,可以削掉怪物20点生命值)"<<endl;
cout<<" 鸡蛋(说明:消耗40点魔法,可以削掉怪物80点生命值)"<<endl;
cout<<" 板砖(说明:消耗60点魔法,可以削掉怪物180点生命值)"<<endl;
GW.ALL_HP=60;
goto DT;
}
bye:return 0;
}
//guaiwu.h
#ifndef GUAIWU_H
#define GUAIWU_H
class guaiwu
{
public:
int LV; //等级
int HP,ALL_HP; //生命和总共生命值
int AT; //攻击
int EXP; //经验值和总共经验值
int RMB; //金钱
guaiwu();
};
#endif
//guaiwu.cpp
#include "guaiwu.h"
guaiwu::guaiwu()
{
LV=1;
HP=60,ALL_HP=60;
AT=10;
RMB=10;
EXP=7;
}
//shangdian.cpp
#include "shangdian.h"
#include <iostream.h>
shangdian::XS()
{
cout<<"********************道具******************************"<<endl;
cout<<"*<1>矿泉水(增加50点HP) $: 35.00 *"<<endl;
cout<<"*<2>哈啤(增加100点HP) $: 80.00 *"<<endl;
cout<<"*<3>娃哈哈(增加40点MP) $: 30.00 *"<<endl;
cout<<"*<4>二锅头(增加120点MP) $: 90.00 *"<<endl;
cout<<"*<5>可口可乐(增加MP和HP各100点) $: 180.00 *"<<endl;
cout<<"*<6>百事可乐(增加MP和HP各200点) $: 300.00 *"<<endl;
cout<<"*****************武器和盔甲***************************"<<endl;
cout<<"*<7>擀面杖(增加10攻击力) $: 150.00 *"<<endl;
cout<<"*<8>锄头(增加35攻击力) $: 450.00 *"<<endl;
cout<<"*<9>菜刀(增加80攻击力) $:1000.00 *"<<endl;
cout<<"*<10>睡衣(增加2防御) $: 130.00 *"<<endl;
cout<<"*<11>森马(增加8防御) $: 300.00 *"<<endl;
cout<<"*<12>adidas(增加20防御) $:1000.00 *"<<endl;
cout<<"*<0>返回大厅 *"<<endl;
cout<<"******************************************************"<<endl;
}
shangdian::shangdian()
{
WPM[1]="矿泉水";
WPM[2]="哈啤";
WPM[3]="娃哈哈";
WPM[4]="二锅头";
WPM[5]="可口可乐";
WPM[6]="百事可乐";
WPM[7]="擀面杖";
WPM[8]="锄头";
WPM[9]="菜刀";
WPM[10]="睡衣";
WPM[11]="森马";
WPM[12]="adidas";
WPZ[1]=50;
WPZ[2]=100;
WPZ[3]=40;
WPZ[4]=120;
WPZ[5]=100;
WPZ[6]=200;
WPZ[7]=10;
WPZ[8]=35;
WPZ[9]=80;
WPZ[10]=2;
WPZ[11]=8;
WPZ[12]=20;
WPR[1]=35;
WPR[2]=80;
WPR[3]=30;
WPR[4]=90;
WPR[5]=180;
WPR[6]=300;
WPR[7]=150;
WPR[8]=450;
WPR[9]=1000;
WPR[10]=130;
WPR[11]=300;
WPR[12]=1000;
}
//shangdian.h
#ifndef SHANGDIAN_H
#define SHANGDIAN_H
class shangdian
{
public:
char *WPM[13];//物品名
int WPZ[13];//物品加什么?
int WPR[13];//物品多少钱>
int WP[13];//几个物品?
XS();
shangdian();
};
//zhujiao.cpp
#include "zhujiao.h"
zhujiao::zhujiao()
{
LV=1;
HP=160;ALL_HP=160;
MP=80;ALL_MP=80;
AT=13;
FY=7;
EXP=0;ALL_EXP=30*LV;
RMB=0;
JN[0]=0;
JN[1]=20;
JN[2]=40;
JN[3]=60;
B[0]="空";
B[1]="空";
B[2]="空";
B[3]="空";
B[4]="空";
B[5]="空";
ZB[0]="空";
ZB[1]="(空)";
ZB[2]="(空)";
}
#endif
//zhujiao.h
#ifndef ZHUJIAO_H
#define ZHUJIAO_H
//-------------------------------------初始化人物和怪物-------------------------------------------------
class zhujiao
{
public:
int LV; //等级
long HP,ALL_HP; //生命和总共生命值
long MP,ALL_MP; //魔法和总共魔法值
long AT; //攻击
long FY; //防御力
long EXP,ALL_EXP; //经验值和总共经验值
long RMB; //金钱
int JN[4]; //技能需要精神力
char *B[6]; //物品
char *ZB[3]; //装备
zhujiao();
};
#endif