[C++] 小游戏 斗破苍穹 2.2.1至2.11.5所有版本(中) zty出品

作者 : admin 本文共176934个字,预计阅读时间需要443分钟 发布时间: 2024-06-9 共2人阅读

目录

2.8.2

2.9.1

2.10.1

2.10.2

2.10.3

2.10.4

2.10.5


2.8.2

#include
#include
#include
#include
#include //suiji
#include //SLEEP函数
using namespace std;
struct Player //玩家结构体,并初始化player
{
char name[21];
int attack;
int defense;
int health;
long int max_health;
int level;
int exp;
int range_exp;
long int max_exp;
} player= {"勇者",50,40,100,100,1,0,0,100};
struct Enemy //怪的结构体,并初始化各种怪
{
char name[20];
char wupin[20];
int attack;
int defense;
int health;
int money;
long int exp;
int wupin_sign;
int wupinpro;
int double_attack;
int miss;
} strongman= {"森林巨人","传说圣甲",40,50,350,200,100,1,5,1,0},
witch= {"森林兽人","重甲",25,15,100,50,50,2,4,1,1},
xiyi= {"森林蜥蜴","铁甲",18,10,50,30,35,3,8,2,2},
big_strongman= {"熔岩巨龙","巨龙晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
lion= {"皇家士兵","尚方宝剑",60,30,280,200,100,5,5,1,0},
horse= {"草原独眼巨人","碧血战锤",28,12,90,50,50,6,5,1,1},
bee= {"草原剑客","西洋剑",17,11,60,30,35,7,5,2,2},
shitu= {"*凋零风暴*","\0",2000,700,20000,10000,5000,0,1,1,0},
pika= {"皮卡超人","\0",300,40*8,1000,2000,1000,0,0,1,0},
dapika= {"雷霆皮卡","雷霆之刃",350,40*10,1500,3000,2000,8,6,6,0},
cl= {"中华长龙","\0",450,50*10,2000,3500,2500,0,0,1,0},
jl= {"东方金龙","万龙甲",500,40*20,5000,10000,5000,9,6,6,1},
guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
struct Place
{
int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3,te1,te2,te3,te4;
} place= {1,2,3,4,5,6,7,8,9,10,11,12};
int max_exp=0;
int htsr;
int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=10;
int cao=3,jijiubao=3,baiyao=3,superbaiyao=3,miansi=1,boom=3,dubiao=2,atom_boom=1;
int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0,fang5=200,fang5n=0;
int gong=0,gong1=8,gong1n=0,gong2=15,gong2n=0,gong3=25,gong3n=0,gong4=60,gong4n=0,gong5=100,gong5n=0;
int jingyancao=0,jingyanbao=0,jingyanshi=0,htmmcs=5;
char gongname[20]="无",fangname[20]="无";
char proof;
void AddWupin(int);
int AttackResult();
void BattleAct();  //      ____
void ChooseWupin();  //   /___/|
void DisplayState();  //  |   |/
void OrdinaryAct();     //▔▔
int SuiJi();
int SuiJi100();
void WhetherLevelUp();
void SlowDisplay(char *);
int main()
{
MessageBox (NULL, "欢迎来到斗破苍穹 2.8.2 正式版 !", "斗破苍穹 2.8.2 游戏开始提示", MB_OK);
int i=0,j=0,k=0;
char player_name[21];
Sleep(1000);
printf("                            _________________________________                    ");system("color 89");
printf("                          /________________________________/|                    ");system("color 89");
printf("               _.+=*^--{|欢迎来到 [苍穹世界] 2.8.2 正式版|}--^*=+._              ");system("color 89");
printf("                        ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔                       
");system("color 89");
//如果想使用外挂,名字请输入:“zty ”。
Sleep(1000);
printf("这里是苍穹世界! 契晋赫苟国的漓嘉茜公主被神秘老人绑架了!
伟大的勇者啊~拿起你的武器,营救公主!
输入你的名字: (20个字符)
");system("color 89");
scanf("%s",player_name);
strncpy(player.name,player_name,20);
if(strcmp(player.name,"zty")==0)
{
printf("
封印多年的郑族血统啊!你终于觉醒了!
zty,你成为了天选之人,请你救出公主吧!
");
player.attack=999;
player.defense=999;
player.health=9999;
player.max_health=9999;
}
getchar();
OrdinaryAct();
return 0;
}
int SuiJi()
{
srand((unsigned)time(NULL));
return rand()%10;
}
int SuiJi100()
{
srand((unsigned)time(NULL));
return rand()%100;
}
void ChooseWupin() //选择物品 并使用
{
printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨龙晶石%d个 12,免死金牌%d个 0,返回
",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm,miansi);system("color 8A");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(cao>0)
{
printf("使用止血草,HP增加120
");system("color 8A");
cao--;
if(player.health+120>player.max_health)player.health=player.max_health;
else player.health+=120;
}
else printf("没有止血草了
");system("color 8A");
break;
case 2:
if(jijiubao>0)
{
printf("使用急救包,HP增加180
");system("color 8A");
jijiubao--;
if(player.health+180>player.max_health)player.health=player.max_health;
else player.health+=180;
}
else printf("没有急救包了
");system("color 8A");
break;
case 3:
if(baiyao>0)
{
printf("使用云南白药,HP增加240
z
");system("color 8A");
baiyao--;
if(player.health+240>player.max_health)player.health=player.max_health;
else player.health+=240;
}
else printf("没有云南白药了
");system("color 8A");
break;
case 4:
if(superbaiyao>0)
{
printf("使用超级云南白药,HP增加400
");system("color 8A");
superbaiyao--;
if(player.health+400>player.max_health)player.health=player.max_health;
else player.health+=400;
}
else printf("没有超级云南白药了
");system("color 8A");
break;
case 5:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(boom>0)
{
printf("使用手雷,敌人HP减少100
");system("color 84");
boom--;
guai.health-=100;
AttackResult();
}
}
else printf("非战斗状态,不能使用手雷!
");system("color 84");
break;
case 6:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(dubiao>0)
{
printf("使用毒标,敌人HP减少200
");system("color 84");
dubiao--;
guai.health-=200;
AttackResult();
}
}
else printf("非战斗状态,不能使用毒标!
");system("color 84");
break;
case 7:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(atom_boom>0)
{
printf("使用手抛式原子弹,敌人HP减少1500
");system("color 84");
atom_boom--;
guai.health-=1500;
AttackResult();
}
}
else printf("非战斗状态,不能使用手抛式原子弹!
");system("color 84");
break;
case 8:
if(jingyancao>0 && player.level<200)
{
printf("使用经验草,等级增加3级
");system("color 8E");
jingyancao--;
player.max_health=player.max_health+60; 
player.attack+=9;
player.defense+=6;
player.level+=3;
player.health=player.max_health;
printf("等级:%d
",player.level);system("color 8E");
}
else    if(jingyancao0 && player.level197&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
jingyanbao--;
player.max_health=player.max_health+sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用经验包,等级增加%d级",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用经验包,等级增加5级
");system("color 8E");
jingyanbao--;
player.max_health=player.max_health+100; 
player.attack+=15;
player.defense+=10;
player.level+=5;
player.health=player.max_health;
printf("等级:%d
",player.level);system("color 8E");
}
}
else if(jingyanbao0 && player.level192&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
player.max_health+=sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用经验石,等级增加%d级
",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用经验石,等级增加10级
");system("color 8E");
jingyanshi--;
player.max_health=player.max_health+200; 
player.attack+=30;
player.defense+=20;
player.level+=10;
player.health=player.max_health;
}
}
else if(jingyanshi0 && player.level182&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
player.max_health=player.max_health+sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用巨龙晶石,等级增加%d级",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用巨龙晶石,等级增加20级
");system("color 8E");
strongman_arm--;
player.max_health=player.max_health+400; 
player.attack+=60;
player.defense+=40;
player.health+=999999;
player.level+=20;
printf("等级:%d
",player.level);system("color 8E");
}
}
else if(strongman_arm0)
{
printf("使用免死金牌,HP满
");system("color 8b");
miansi--;
if(player.health+999999>player.max_health)player.health=player.max_health;
else player.health+=999999;
}else printf("没有免死金牌了
"); system("color 8b");break;
case 0:
break;
default:
printf("ChooseWupin error!
");
}
}
int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
{
if(guai.health<=0)
{
battle=0;
printf("战斗胜利!获得金币%d,经验%d
",guai.money,guai.exp);system("color 8C");
player.exp+=guai.exp;
player.range_exp+=guai.exp;
money+=guai.money;
s=SuiJi();
if(s<guai.wupinpro)
{
printf("从敌人尸骸中发现");system("color 8C");
printf("%s
",guai.wupin);
AddWupin(guai.wupin_sign);
}
WhetherLevelUp();
if(strcmp(guai.name,"*凋零风暴*")==0)
{
printf("你把公主救了出来
你可以在主页面退出
");system("color 8C");
}
return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
}
else
{
int s=SuiJi();
if((guai.attack+s-player.defense/3)<0)
{
player.health-=1;
printf("%s反击,你的HP减少了 1
",guai.name);system("color 8C");
}
else
{
player.health-=guai.attack+s-player.defense/3;
printf("%s反击,你的HP减少了%d
",guai.name,guai.attack+s-player.defense/3);system("color 8C");
}
if(player.health<0)
{
battle=0;
printf("%s战死!金币掉落%d
",player.name,player.level*500);system("color CC");
money-=player.level*500;
player.health=player.max_health/5;
OrdinaryAct();//
return 1;
}
}
return 0;
}
void AddWupin(int wupin_sign)
{
switch(wupin_sign)
{
case 1:
fang4n++;
break;
case 2:
fang3n++;
break;
case 3:
fang2n++;
break;
case 4:
strongman_arm++;
break;
case 5:
gong4n++;
break;
case 6:
gong3n++;
break;
case 7:
gong2n++;
break;
case 8:
gong5n++;
break;
case 9:
fang5n++;
break;
default:
printf("AddWupin error
");
}
}
void WhetherLevelUp()
{
int i=0,j=0;
int l1=player.range_exp/100;
int l2=player.range_exp/300;
int l3=player.range_exp/600;
if(player.level0) //15级以下,经验足够 都满足则升级
{
if(l1==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100;
}
else
{
printf("好厉害!连升%d级!",l1);system("color 8E");
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l1,2*l1,20*l1);system("color 8E");
player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
player.attack+=3*l1;
player.defense+=2*l1;
player.max_health+=20*l1;
player.health=player.max_health;
player.level+=l1;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100*l1;
}
}
else if(player.level0)
{
if(l2==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300;
}
else
{
printf("好厉害!连升%d级!",l1);system("color 8E");
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l2,2*l2,20*l2);system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l2;
player.defense+=2*l2;
player.max_health+=20*l2;
player.health=player.max_health;
player.level+=l2;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300*l2;
}
}
else if(l3>0)
{
if(l3==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600;
}
else
{
printf("好厉害!连升%d级!",l1);
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l3,2*l3,20*l3);system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l3;
player.defense+=2*l3;
player.max_health+=20*l3;
player.health=player.max_health;
player.level+=l3;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600*l3;
}
}
}
void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
{
while(1)
{
// \(1000);
// system("cls");
puts("=============================================================================");system("color 89");
printf("要做什么?
1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 7,打开后台 0,退出游戏
");system("color 89");
puts("=============================================================================");system("color 89");
switch(scanf("%d",&choose_number),choose_number)
{
case 1: //显示移动菜单
printf("要去哪里?
");system("color 89");
printf("1,小郑子酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野
");system("color 89");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
place_sign=place.bar; //记录目前位置-酒吧
// OrdinaryAct();
break;
case 2:
place_sign=place.hotel; //进入旅店
printf("金币:%d",money);system("color 89");
printf("要开房吗? 200个金币 1,是 0,否
");system("color 89");
choose_number=1;
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(money-200=300)
{
gong1n++;
money=money-300;
printf ("匕首+1
");system("color 89");
printf("匕首:%d个
",gong1n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
case 2:
if(money>=500)
{
gong2n++;
money=money-500;
printf ("西洋剑+1
");system("color 89");
printf("西洋剑:%d个
",gong2n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
case 3:
if(money>=1000)
{
gong3n++;
money=money-1000;
printf ("碧血战锤+1
");system("color 89");
printf("碧血战锤:%d个
",gong3n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
default:
printf("对不起,我们只会打造以上武器。");system("color 89");
break;
}
break;
case 2:
int fang;
printf("请问您要购买什么防具?
1,布衣¥300 2,铁甲¥500 3,重甲¥1000
");system("color 89");
scanf("%d",&fang);
switch(fang)
{
case 1:
if(money>=300)
{
fang1n++;
money=money-300;
printf ("布衣+1
");system("color 89");
printf("布衣:%d个
",fang1n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
}
break;
case 2:
if(money>=500)
{
fang2n++;
money=money-500;
printf ("铁甲+1
");system("color 89");
printf("铁甲:%d个
",fang2n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d",money);system("color 89");
}
break;
case 3:
if(money>=1000)
{
fang3n++;
money=money-1000;
printf ("重甲+1
");system("color 89");
printf("重甲:%d个
",fang3n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
}
default:
printf("对不起,我们只会打造以上防具。");system("color 89");
break;
}
printf("金币:%d
",money);system("color 89");
break;
case 3:
printf("请问您要购买什么一次性伤害武器?
1,手雷 2,毒镖 3,手抛式原子弹
");system("color 89");
int yi;
scanf("%d",&yi);
switch(yi)
{
case 1:
if(money>=300 && boom=600 && dubiao=1000 && atom_boom=shu)
{
gong1n=gong1n-shu;
money=money+shu*240;
printf("匕首:%d
",gong1n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("装备数不够,无法出售!
");system("color 89");
break;
}
break;
case 2:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong2n>=shu)
{
gong2n=gong2n-shu;
money=money+shu*400;
printf("西洋剑:%d
",gong2n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 3:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong3n>=shu)
{
gong3n=gong3n-shu;
money=money+shu*800;
printf("碧血战锤:%d
",gong3n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 4:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong4n>=shu)
{
gong4n=gong4n-shu;
money=money+shu*1500;
printf("尚方宝剑:%d
",gong4n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 5:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong5n>=shu)
{
gong5n=gong5n-shu;
money=money+shu*3000;
printf("皮卡大剑:%d
",gong5n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 6:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang1n>=shu)
{
fang1n=fang1n-shu;
money=money+shu*240;
printf("布衣:%d
",fang1n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 7:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang2n>=shu)
{
fang2n=fang2n-shu;
money=money+shu*500;
printf("铁甲:%d
",fang2n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 8:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang3n>=shu)
{
fang3n=fang3n-shu;
money=money+shu*800;
printf("重甲:%d
",fang3n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
break;
case 9:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang4n>=shu)
{
fang4n=fang4n-shu;
money=money+shu*1500;
printf("传说圣甲:%d
",fang4n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 10:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang5n>=shu)
{
fang5n=fang5n-shu;
money=money+shu*3000;
printf("万龙甲:%d
",fang5n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 11:
printf("请问您要出售几颗?");
scanf("%d",&shu);
if(strongman_arm>=shu)
{
strongman_arm=strongman_arm-shu;
money=money+shu*4000;
printf("巨龙晶石:%d
",strongman_arm);
printf("金币:%d
",money);
}
else
{
printf("晶石数不够,无法出售!
");
break;
}
break;
case 0:
break;
break;
default:
printf("没有该装备,无法出售!
");
break;
}
break;
case 5:
int yewai;
while(1)
{
puts("=============================================================================");
printf("要去哪冒险呢?");
printf("
1,神秘沼泽 危险程度:★
2,星耀草原 危险程度:★
3,诡异森林 危险程度:★★★
4,荒漠矿场 危险程度:★★★
5,炽热炎洞 危险程度:★★★★
6,皮卡超人游乐场 危险程度★★★★★
7,花朵宫殿 危险程度:★★★★★
8,五千龙穴 危险程度:★★★★★★
0,离开
");system("color 8c");
puts("=============================================================================");
scanf("%d",&yewai);
switch(yewai)
{
case 1:
place_sign=place.forest1;
s=SuiJi();
if(s<7)
{
battle=1;
guai=xiyi;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=witch;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
//不用调用OAct函数,会自动执行OAct函数;
}
break;
case 3:
place_sign=place.forest2;
s=SuiJi();
if(s<7)
{
battle=1;
guai=witch;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=strongman;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
}
break;
case 5:
place_sign=place.forest3;
s=SuiJi();
if(s<7)
{
battle=1;
guai=strongman;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<10)
{
battle=1;
guai=big_strongman;
printf("炽热的%s拍打着翅膀扑了过来!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
}
break;
case 2:
place_sign=place.grass1;
s=SuiJi();
if(s<7)
{
battle=1;
guai=bee;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=horse;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
}
break;
case 4:
place_sign=place.grass2;
s=SuiJi();
if(s<7)
{
battle=1;
guai=horse;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=lion;
printf("%s举着尚方宝剑拦住了你!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
}
break;
case 6:
s=SuiJi();
if(s<7)
{
battle=1; 
guai=pika;
printf("你感到了强烈的电流涌入全身,%s走了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=dapika;
printf("天空一声巨响,三道闪电劈到%s的身上,%s手持雷霆之刃冲了过来!
",guai.name,guai.name);
BattleAct();
}
else
{
printf("这里安全
");
}
break;
case 8:
s=SuiJi();
if(s<=3)
{
battle=1; 
guai=cl;
printf("一条长龙横卧洞内,你定睛一看,是%s扑了过来!
",guai.name);
BattleAct();
}
else if(s=4)
{
battle=1; 
guai=big_strongman;
printf("炽热的%s拍打着翅膀扑了过来!
",guai.name);
BattleAct();
}
else {
battle=1;
guai=jl;
printf("一条金光闪闪的长龙盘旋空中,你定睛一看,是传说中的%s扑了过来!
",guai.name);
BattleAct();
}
break;
case 7:
place_sign=place.grass3;
s=SuiJi();
if(s<7)
{
battle=1;
guai=lion;
printf("%s举着尚方宝剑拦住了你!
",guai.name);
BattleAct();
}
else if(s=1)
{
printf("神秘老人:
哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨龙晶石我要了,公主你也别想带走!
");
guai=shitu;
printf("瞬间,你被一团黑雾笼罩,你被拉入了凋零幻境,%s向你发起攻击!
",guai.name);
BattleAct();
}
else printf("神秘老人:
年轻人,你好啊.如果你有巨龙晶石,我可以告诉你公主的下落哦~
");
}
else
{
printf("这里安全
");
}
break;
if(yewai!=0)
{
printf("该区域为未知区域,无法进入。
");system("color 89");
break;
}
}
if(yewai==0)
{
break;
printf("已离开荒野。");system("color 89");
}
}
}
break;
case 2:
ChooseWupin();
break; //显示道具,并可以使用.
case 3: //对话选项
if(place_sign==place.bar)
{
printf("要和谁说话?
1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人
"); system("color 89");//显示对话人物
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
printf("红发女郎:
吧台边那个Hunter好帅啊!(~脸红~)
听说他经常外出打猎,外面的路他应该很熟悉的!
");system("color 89");
break;
case 2:
if(fang1n<1&&gong1n<1)
{
printf("赏金猎人:
你要救公主啊!好胆量!
不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!
");system("color 89");
printf("%s心想:哇,这位大叔人真好啊!
)",player.name);
gong1n++;
fang1n++;
}
else printf("赏金猎人:
加油吧,年轻人!
不要被外面世界所吓倒!
");system("color 89");
break;
case 3:
printf("要喝点什么?
1,二锅头25金币 HP+20 2,伏特加80金币 HP+50 3,人头马面150金币 HP+100 0,返回
");system("color 89");
choose_number=1;
while(choose_number)
{
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(money<25){
printf("钱不够!");system("color 89");
}
else
{
if(player.health+20<=player.max_health){
printf("HP+20.");system("color 89");
money-=25;
player.health+=20;
}
else{
printf("HP满了");system("color 89");
player.health=player.max_health;
}
}
break;
case 2:
if(money<80){
printf("钱不够!");system("color 89");
}
else{
if(player.health+50<=player.max_health){
printf("HP+50.");system("color 89");
money-=80;
player.health+=50;
}
else{
printf("HP满了");system("color 89");
player.health=player.max_health;
}
}
break;
case 3:
if(money<150){
printf("钱不够!");system("color 89");
}
else{
if(player.health+100=100&&cao=150&&jijiubao=250&&baiyao=400&&superbaiyao=150){
jingyancao++;
money=money-150;
printf ("经验草+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
case 6:
if(money>=300){
jingyanbao++;
money=money-300;
printf ("经验包+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
case 7:
if(money>=500){
jingyanshi++;
money=money-500;
printf ("经验石+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
}
case 0:
printf("金币:%d
",money);system("color 89");
printf("再见,欢迎下次再来!
");system("color 89");
break;
}
if(mai==2){
printf("药品商人:去去去,老子没时间陪你聊。
");system("color 89");
}
}
}
else if(place_sign==place.hotel)
printf("“老板娘!我...”
“我忙着呢,没空理你~”
");
else printf("这里好像没人可以聊天
");system("color 89");
break;
case 4:
DisplayState();
break; //显示状态
case 5: //装备
printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个 5,雷霆之刃:%d个
",gong1n,gong2n,gong3n,gong4n,gong5n);system("color 89");
printf("防御装备: 6,布衣:%d个 7,铁甲:%d个 8,重甲:%d个 9,传说圣甲:%d个 10万龙甲:%d个		0,返回
",fang1n,fang2n,fang3n,fang4n,fang5n);system("color 89");
printf("选择要装备的武器或防具:
");system("color 89");
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(gong1n>=1){
printf("拿起了匕首
");system("color 89");
gong=gong1;
strcpy(gongname,"匕首");system("color 89");
}
else printf("你没有匕首可以装备
");system("color 89");
break;
case 2:
if(gong2n>=1){
printf("拿起了西洋剑
");system("color 89");
gong=gong2;
strcpy(gongname,"西洋剑");system("color 89");
}
else printf("你没有西洋剑可以装备
");system("color 89");
break;
case 3:
if(gong3n>=1){
printf("拿起了碧血战锤
");
gong=gong3;
strcpy(gongname,"碧血战锤");
}
else printf("你没有碧血战锤可以装备
");
break;
case 4:
if(gong4n>=1){
printf("拿起了尚方宝剑
");
gong=gong4;
strcpy(gongname,"尚方宝剑");
}
else printf("你没有尚方宝剑可以装备
");
break;
case 5:
if(gong5n>=1){
printf("拿起了雷霆之刃
");
gong=gong5;
strcpy(gongname,"雷霆之刃");
}
else printf("你没有雷霆之刃可以装备
");
break;
case 6:
if(fang1n>=1){
printf("穿上了布衣
");
fang=fang1;
strcpy(fangname,"布衣");
}
else printf("你没有布衣可以装备
");
break;
case 7:
if(fang2>=1){
printf("穿上了铁甲
");
fang=fang2;
strcpy(fangname,"铁甲");
}
else printf("你没有铁甲可以装备
");
break;
case 8:
if(fang3n>=1){
printf("穿上了重甲
");
fang=fang3;
strcpy(fangname,"重甲");
}
else printf("你没有重甲可以装备
");
break;
case 9:
if(fang4n>=1){
printf("穿上了传说圣甲
");
fang=fang4;
strcpy(fangname,"传说圣甲");
}
else printf("你没有传说圣甲可以装备
");
break;
case 10:
if(fang5n>=1){
printf("穿上了万龙甲
");
fang=fang5;
strcpy(fangname,"万龙甲");
}
else printf("你没有万龙甲可以装备
");
break; 
case 0:
printf("未更换装备
");
break;
default:
printf("change error!");
}
break;
case 6:
printf(" 您好,欢迎您玩苍穹世界。为了给您更好的游戏体验,zty时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty ”(不包括双引号)。由于2.8.1版本的buy,我们在2.8.1的基础上进行修改,已修复该bug.希望大家喜欢。在这里要感谢吴昊同学,他给了我们许多宝贵的建议,谢谢。
");system("color 89");
break;
case 0:
printf("确定退出游戏?(Y/N)
");system("color 89");
getchar();
proof=getchar();
if(proof=='y'||proof=='Y'){
printf("数据存储中...");system("color 89");
//向文件中更新数据;
getchar();
printf("按回车退出");system("color 89");
getchar();
return;
}
else if(proof=='n'||proof=='N')printf("继续游戏!
");
else printf("继续!
");
break;
default:
printf("输入错误!
");
break;
case 7:
int mi;
cout<>mi;
if(mi%20120913==0){
cout<>> "<>htsr;
if(htsr==1){
cout<<"成功获得效果 *金币加9999
";
money+=9999;
}
if(htsr==2){
cout<<"成功获得效果 *血量加9999
";
player.health+=9999;
}
if(htsr==3){
cout<<"成功获得效果 *血量上限加9999
";
player.max_health+=9999;
}
if(htsr==4){
cout<<"成功获得效果 *攻击加9999
";
player.attack+=9999;
}
if(htsr==5){
cout<<"成功获得效果 *防御加9999
";
player.defense+=9999;
}
if(htsr%211==0){
cout<<"成功退出
";
continue;
}
}
else{
cout<<"输入错误!请检查!"<<endl;
continue;
}
break;
}
}
}
void DisplayState()
{
printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d 
",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
printf("武器: %s 防具: %s 
",gongname,fangname);
printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d 
",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
}
void BattleAct()
{
while(1)
{
puts("=============================================================================");
printf("要怎么办?
1,攻击 2,物品 3,查看状态 4,逃跑
");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
s=SuiJi();
printf("%s攻击! %sHP减少%d
",player.name,guai.name,player.attack+s+gong-guai.defense/3);
guai.health-=player.attack+s+gong-guai.defense/3;
if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
else continue;
case 2:
ChooseWupin();
break; //选择物品,可以使用,战斗中允许使用攻击性物品
case 3:
DisplayState();
break; //显示状态
case 4:
s=SuiJi();
if(s<4) //40%的概率可以逃跑
{
printf("%s逃跑了~
",player.name);
battle=0;
return;
}
else printf("%s逃跑失败!
",player.name);
break;
default:
printf("输入错误,重新输入!
");
}
}
}
void printf(char *p)
{
while(1)
{
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(100);
}
} 

2.9.1

#include
#include
#include
#include
#include //suiji
#include //SLEEP函数
using namespace std;
struct Player //玩家结构体,并初始化player
{
char name[21];
int attack;
int defense;
int health;
long int max_health;
int level;
int exp;
int range_exp;
long int max_exp;
} player= {"勇者",50,40,100,100,1,0,0,100};
struct Enemy //怪的结构体,并初始化各种怪
{
char name[20];
char wupin[20];
int attack;
int defense;
int health;
int money;
long int exp;
int wupin_sign;
int wupinpro;
int double_attack;
int miss;
} strongman= {"森林巨人","传说圣甲",40,50,350,200,100,1,5,1,0},
witch= {"森林兽人","重甲",25,15,100,50,50,2,4,1,1},
xiyi= {"森林蜥蜴","铁甲",18,10,50,30,35,3,8,2,2},
big_strongman= {"熔岩巨龙","巨龙晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
lion= {"皇家士兵","尚方宝剑",60,30,280,200,100,5,5,1,0},
horse= {"草原独眼巨人","碧血战锤",28,12,90,50,50,6,5,1,1},
bee= {"草原剑客","西洋剑",17,11,60,30,35,7,5,2,2},
shitu= {"凋零女巫","凋零之心",2000,700,20000,10000,5000,10,10,1,0},
dljs= {"凋零巨兽","凋零之心",2000,700,20000,10000,5000,10,10,1,0},
pika= {"皮卡超人","\0",300,40*8,1000,2000,1000,0,0,1,0},
dapika= {"雷霆皮卡","雷霆之刃",350,40*10,1500,3000,2000,8,6,6,0},
cl= {"中华长龙","\0",450,50*10,2000,3500,2500,0,0,1,0},
jl= {"东方金龙","万龙甲",500,40*20,5000,10000,5000,9,6,6,1},
gst={"凋零共生体","\0",1800,65*10,15000,0,4500,0,0,1,0},
dlkl= {"凋零骷髅","\0",3000,30*10,12000,0,5000,0,0,1,0},
dlfb= {".+*凋零风暴*+.","\0",18000,200*10,98000,0,500000,0,0,1,0},
guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
struct Place
{
int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3,te1,te2,te3,te4;
} place= {1,2,3,4,5,6,7,8,9,10,11,12};
int max_exp=0;
int htsr;
int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=10;
int cao=3,jijiubao=3,baiyao=3,superbaiyao=3,miansi=1,boom=3,dubiao=2,atom_boom=1;
int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0,fang5=200,fang5n=0;
int gong=0,gong1=8,gong1n=0,gong2=15,gong2n=0,gong3=25,gong3n=0,gong4=60,gong4n=0,gong5=100,gong5n=0;
int jingyancao=0,jingyanbao=0,jingyanshi=0,htmmcs=5;
int diaolingxin=0; 
char gongname[20]="无",fangname[20]="无";
char proof;
void AddWupin(int);
int AttackResult();
void BattleAct();  //      ____
void ChooseWupin();  //   /___/|
void DisplayState();  //  |   |/
void OrdinaryAct();     //▔▔
int SuiJi();
int SuiJi100();
void WhetherLevelUp();
void SlowDisplay(char *);
int main()
{
MessageBox (NULL, "欢迎来到斗破苍穹 2.9.0 正式版 !", "斗破苍穹 2.9.0 游戏开始提示", MB_OK);
int i=0,j=0,k=0;
char player_name[21];
Sleep(1000);
printf("                            _________________________________                    ");system("color 89");
printf("                          /________________________________/|                    ");system("color 89");
printf("               _.+=*^--{|欢迎来到 [苍穹世界] 2.9.0 正式版|}--^*=+._              ");system("color 89");
printf("                        ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔                       
");system("color 89");
//如果想使用外挂,名字请输入:“zty ”。
Sleep(1000);
printf("这里是苍穹世界! 契晋赫苟国的漓嘉茜公主被神秘老人绑架了!
伟大的勇者啊~拿起你的武器,营救公主!
输入你的名字: (20个字符)
");system("color 89");
scanf("%s",player_name);
strncpy(player.name,player_name,20);
if(strcmp(player.name,"zty")==0)
{
printf("
封印多年的郑族血统啊!你终于觉醒了!
zty,你成为了天选之人,请你救出公主吧!
");
player.attack=999;
player.defense=999;
player.health=9999;
player.max_health=9999;
}
getchar();
OrdinaryAct();
return 0;
}
int SuiJi()
{
srand((unsigned)time(NULL));
return rand()%10;
}
int SuiJi100()
{
srand((unsigned)time(NULL));
return rand()%100;
}
void ChooseWupin() //选择物品 并使用
{
printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨龙晶石%d个 12,免死金牌%d个 13,凋零之心%d个 0,返回
",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm,miansi,diaolingxin);system("color 8A");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(cao>0)
{
printf("使用止血草,HP增加120
");system("color 8A");
cao--;
if(player.health+120>player.max_health)player.health=player.max_health;
else player.health+=120;
}
else printf("没有止血草了
");system("color 8A");
break;
case 2:
if(jijiubao>0)
{
printf("使用急救包,HP增加180
");system("color 8A");
jijiubao--;
if(player.health+180>player.max_health)player.health=player.max_health;
else player.health+=180;
}
else printf("没有急救包了
");system("color 8A");
break;
case 3:
if(baiyao>0)
{
printf("使用云南白药,HP增加240
z
");system("color 8A");
baiyao--;
if(player.health+240>player.max_health)player.health=player.max_health;
else player.health+=240;
}
else printf("没有云南白药了
");system("color 8A");
break;
case 4:
if(superbaiyao>0)
{
printf("使用超级云南白药,HP增加400
");system("color 8A");
superbaiyao--;
if(player.health+400>player.max_health)player.health=player.max_health;
else player.health+=400;
}
else printf("没有超级云南白药了
");system("color 8A");
break;
case 5:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(boom>0)
{
printf("使用手雷,敌人HP减少100
");system("color 84");
boom--;
guai.health-=100;
AttackResult();
}
}
else printf("非战斗状态,不能使用手雷!
");system("color 84");
break;
case 6:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(dubiao>0)
{
printf("使用毒标,敌人HP减少200
");system("color 84");
dubiao--;
guai.health-=200;
AttackResult();
}
}
else printf("非战斗状态,不能使用毒标!
");system("color 84");
break;
case 7:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(atom_boom>0)
{
printf("使用手抛式原子弹,敌人HP减少1500
");system("color 84");
atom_boom--;
guai.health-=1500;
AttackResult();
}
}
else printf("非战斗状态,不能使用手抛式原子弹!
");system("color 84");
break;
case 8:
if(jingyancao>0 && player.level<200)
{
printf("使用经验草,等级增加3级
");system("color 8E");
jingyancao--;
player.max_health=player.max_health+60; 
player.attack+=9;
player.defense+=6;
player.level+=3;
player.health=player.max_health;
printf("等级:%d
",player.level);system("color 8E");
}
else    if(jingyancao0 && player.level197&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
jingyanbao--;
player.max_health=player.max_health+sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用经验包,等级增加%d级",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用经验包,等级增加5级
");system("color 8E");
jingyanbao--;
player.max_health=player.max_health+100; 
player.attack+=15;
player.defense+=10;
player.level+=5;
player.health=player.max_health;
printf("等级:%d
",player.level);system("color 8E");
}
}
else if(jingyanbao0 && player.level192&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
player.max_health+=sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用经验石,等级增加%d级
",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用经验石,等级增加10级
");system("color 8E");
jingyanshi--;
player.max_health=player.max_health+200; 
player.attack+=30;
player.defense+=20;
player.level+=10;
player.health=player.max_health;
}
}
else if(jingyanshi0 && player.level182&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
player.max_health=player.max_health+sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用巨龙晶石,等级增加%d级",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用巨龙晶石,等级增加20级
");system("color 8E");
strongman_arm--;
player.max_health=player.max_health+400; 
player.attack+=60;
player.defense+=40;
player.health+=999999;
player.level+=20;
printf("等级:%d
",player.level);system("color 8E");
}
}
else if(strongman_arm0)
{
printf("使用免死金牌,HP满
");system("color 8b");
miansi--;
if(player.health+999999>player.max_health)player.health=player.max_health;
else player.health+=999999;
}else printf("没有免死金牌了
"); system("color 8b");break;
break;
case 13:
if(diaolingxin>0)
{
printf("使用凋零之心
HP+100  攻击+100
");system("color 8b");
diaolingxin--;
player.health+=100;
player.attack+=100; 
}else printf("没有凋零之心了
"); system("color 8b");break;
case 0:
break;
default:
printf("ChooseWupin error!
");
}
}
int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
{
if(guai.health<=0)
{
battle=0;
printf("战斗胜利!获得金币%d,经验%d
",guai.money,guai.exp);system("color 8C");
player.exp+=guai.exp;
player.range_exp+=guai.exp;
money+=guai.money;
s=SuiJi();
if(s<guai.wupinpro)
{
printf("从敌人尸骸中发现");system("color 8C");
printf("%s
",guai.wupin);
AddWupin(guai.wupin_sign);
}
WhetherLevelUp();
if(strcmp(guai.name,"*凋零巨兽*")==0)
{
printf("你把公主救了出来
你从公主口中得知了一个更大的阴谋,你可以进入凋零世界
");system("color 8C");
}
return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
}
else
{
int s=SuiJi();
if((guai.attack+s-player.defense/3)<0)
{
player.health-=1;
printf("%s反击,你的HP减少了 1
",guai.name);system("color 8C");
}
else
{
player.health-=guai.attack+s-player.defense/3;
printf("%s反击,你的HP减少了%d
",guai.name,guai.attack+s-player.defense/3);system("color 8C");
}
if(player.health<0)
{
battle=0;
printf("%s战死!金币掉落%d
",player.name,player.level*500);system("color CC");
money-=player.level*500;
player.health=player.max_health/5;
OrdinaryAct();//
return 1;
}
}
return 0;
}
void AddWupin(int wupin_sign)
{
switch(wupin_sign)
{
case 1:
fang4n++;
break;
case 2:
fang3n++;
break;
case 3:
fang2n++;
break;
case 4:
strongman_arm++;
break;
case 5:
gong4n++;
break;
case 6:
gong3n++;
break;
case 7:
gong2n++;
break;
case 8:
gong5n++;
break;
case 9:
fang5n++;
break;
case 10:
diaolingxin++;
break;
default:
printf("AddWupin error
");
}
}
void WhetherLevelUp()
{
int i=0,j=0;
int l1=player.range_exp/100;
int l2=player.range_exp/300;
int l3=player.range_exp/600;
if(player.level0) //15级以下,经验足够 都满足则升级
{
if(l1==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100;
}
else
{
printf("好厉害!连升%d级!",l1);system("color 8E");
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l1,2*l1,20*l1);system("color 8E");
player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
player.attack+=3*l1;
player.defense+=2*l1;
player.max_health+=20*l1;
player.health=player.max_health;
player.level+=l1;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100*l1;
}
}
else if(player.level0)
{
if(l2==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300;
}
else
{
printf("好厉害!连升%d级!",l1);system("color 8E");
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l2,2*l2,20*l2);system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l2;
player.defense+=2*l2;
player.max_health+=20*l2;
player.health=player.max_health;
player.level+=l2;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300*l2;
}
}
else if(l3>0)
{
if(l3==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600;
}
else
{
printf("好厉害!连升%d级!",l1);
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l3,2*l3,20*l3);system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l3;
player.defense+=2*l3;
player.max_health+=20*l3;
player.health=player.max_health;
player.level+=l3;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600*l3;
}
}
}
void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
{
while(1)
{
// \(1000);
// system("cls");
puts("=============================================================================");system("color 89");
printf("要做什么?
1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 7,打开后台 0,退出游戏
");system("color 89");
puts("=============================================================================");system("color 89");
switch(scanf("%d",&choose_number),choose_number)
{
case 1: //显示移动菜单
printf("要去哪里?
");system("color 89");
printf("1,小郑子酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野
");system("color 89");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
place_sign=place.bar; //记录目前位置-酒吧
// OrdinaryAct();
break;
case 2:
place_sign=place.hotel; //进入旅店
printf("金币:%d",money);system("color 89");
printf("要开房吗? 200个金币 1,是 0,否
");system("color 89");
choose_number=1;
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(money-200=300)
{
gong1n++;
money=money-300;
printf ("匕首+1
");system("color 89");
printf("匕首:%d个
",gong1n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
case 2:
if(money>=500)
{
gong2n++;
money=money-500;
printf ("西洋剑+1
");system("color 89");
printf("西洋剑:%d个
",gong2n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
case 3:
if(money>=1000)
{
gong3n++;
money=money-1000;
printf ("碧血战锤+1
");system("color 89");
printf("碧血战锤:%d个
",gong3n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
default:
printf("对不起,我们只会打造以上武器。");system("color 89");
break;
}
break;
case 2:
int fang;
printf("请问您要购买什么防具?
1,布衣¥300 2,铁甲¥500 3,重甲¥1000
");system("color 89");
scanf("%d",&fang);
switch(fang)
{
case 1:
if(money>=300)
{
fang1n++;
money=money-300;
printf ("布衣+1
");system("color 89");
printf("布衣:%d个
",fang1n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
}
break;
case 2:
if(money>=500)
{
fang2n++;
money=money-500;
printf ("铁甲+1
");system("color 89");
printf("铁甲:%d个
",fang2n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d",money);system("color 89");
}
break;
case 3:
if(money>=1000)
{
fang3n++;
money=money-1000;
printf ("重甲+1
");system("color 89");
printf("重甲:%d个
",fang3n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
}
default:
printf("对不起,我们只会打造以上防具。");system("color 89");
break;
}
printf("金币:%d
",money);system("color 89");
break;
case 3:
printf("请问您要购买什么一次性伤害武器?
1,手雷 2,毒镖 3,手抛式原子弹
");system("color 89");
int yi;
scanf("%d",&yi);
switch(yi)
{
case 1:
if(money>=300 && boom=600 && dubiao=1000 && atom_boom=shu)
{
gong1n=gong1n-shu;
money=money+shu*240;
printf("匕首:%d
",gong1n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("装备数不够,无法出售!
");system("color 89");
break;
}
break;
case 2:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong2n>=shu)
{
gong2n=gong2n-shu;
money=money+shu*400;
printf("西洋剑:%d
",gong2n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 3:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong3n>=shu)
{
gong3n=gong3n-shu;
money=money+shu*800;
printf("碧血战锤:%d
",gong3n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 4:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong4n>=shu)
{
gong4n=gong4n-shu;
money=money+shu*1500;
printf("尚方宝剑:%d
",gong4n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 5:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong5n>=shu)
{
gong5n=gong5n-shu;
money=money+shu*3000;
printf("皮卡大剑:%d
",gong5n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 6:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang1n>=shu)
{
fang1n=fang1n-shu;
money=money+shu*240;
printf("布衣:%d
",fang1n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 7:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang2n>=shu)
{
fang2n=fang2n-shu;
money=money+shu*500;
printf("铁甲:%d
",fang2n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 8:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang3n>=shu)
{
fang3n=fang3n-shu;
money=money+shu*800;
printf("重甲:%d
",fang3n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
break;
case 9:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang4n>=shu)
{
fang4n=fang4n-shu;
money=money+shu*1500;
printf("传说圣甲:%d
",fang4n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 10:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang5n>=shu)
{
fang5n=fang5n-shu;
money=money+shu*3000;
printf("万龙甲:%d
",fang5n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 11:
printf("请问您要出售几颗?");
scanf("%d",&shu);
if(strongman_arm>=shu)
{
strongman_arm=strongman_arm-shu;
money=money+shu*4000;
printf("巨龙晶石:%d
",strongman_arm);
printf("金币:%d
",money);
}
else
{
printf("晶石数不够,无法出售!
");
break;
}
break;
case 0:
break;
break;
default:
printf("没有该装备,无法出售!
");
break;
}
break;
case 5:
int yewai;
while(1)
{
puts("=============================================================================");
printf("要去哪冒险呢?");
printf("
1,神秘沼泽 危险程度:★
2,星耀草原 危险程度:★
3,诡异森林 危险程度:★★★
4,荒漠矿场 危险程度:★★★
5,炽热炎洞 危险程度:★★★★
6,皮卡超人游乐场 危险程度★★★★★
7,花朵宫殿 危险程度:★★★★★
8,五千龙穴 危险程度:★★★★★★
9,凋零宇宙 危险程度:★★★★★★★★
0,离开
");system("color 8c");
puts("=============================================================================");
scanf("%d",&yewai);
switch(yewai)
{
case 1:
place_sign=place.forest1;
s=SuiJi();
if(s<7)
{
battle=1;
guai=xiyi;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=witch;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
//不用调用OAct函数,会自动执行OAct函数;
}
break;
case 3:
place_sign=place.forest2;
s=SuiJi();
if(s<7)
{
battle=1;
guai=witch;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=strongman;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
}
break;
case 5:
place_sign=place.forest3;
s=SuiJi();
if(s<7)
{
battle=1;
guai=strongman;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<10)
{
battle=1;
guai=big_strongman;
printf("炽热的%s拍打着翅膀扑了过来!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
}
break;
case 2:
place_sign=place.grass1;
s=SuiJi();
if(s<7)
{
battle=1;
guai=bee;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=horse;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
}
break;
case 4:
place_sign=place.grass2;
s=SuiJi();
if(s<7)
{
battle=1;
guai=horse;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=lion;
printf("%s举着尚方宝剑拦住了你!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
}
break;
case 6:
s=SuiJi();
if(s<7)
{
battle=1; 
guai=pika;
printf("你感到了强烈的电流涌入全身,%s走了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=dapika;
printf("天空一声巨响,三道闪电劈到%s的身上,%s手持雷霆之刃冲了过来!
",guai.name,guai.name);
BattleAct();
}
else
{
printf("这里安全
");
}
break;
case 8:
s=SuiJi();
if(s<=3)
{
battle=1; 
guai=cl;
printf("一条长龙横卧洞内,你定睛一看,是%s扑了过来!
",guai.name);
BattleAct();
}
else if(s=4)
{
battle=1; 
guai=big_strongman;
printf("炽热的%s拍打着翅膀扑了过来!
",guai.name);
BattleAct();
}
else {
battle=1;
guai=jl;
printf("一条金光闪闪的长龙盘旋空中,你定睛一看,是传说中的%s扑了过来!
",guai.name);
BattleAct();
}
break;
case 7:
place_sign=place.grass3;
s=SuiJi();
if(s<7)
{
battle=1;
guai=lion;
printf("%s举着尚方宝剑拦住了你!
",guai.name);
BattleAct();
}
else if(s=1)
{
printf("神秘老人:
哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨龙晶石我要了,公主你也别想带走!
");
guai=shitu;
printf("瞬间,你被一团黑雾笼罩,你被拉入了凋零幻境,%s向你发起攻击!
",guai.name);
BattleAct();
}
else printf("神秘老人:
年轻人,你好啊.如果你有巨龙晶石,我可以告诉你公主的下落哦~
");
}
else
{
printf("这里安全
");
}
break;
case 9:
s=SuiJi();
if(diaolingxin!=0){
if(s==1)
{
battle=1; 
guai=dlfb;
printf("一个巨大的黑暗物体,周围环绕着大量的由破碎方块组成的黑色颗粒云环的%s向你发起攻击!
",guai.name);
BattleAct();
}
else if(s<=2 && s<=4)
{
battle=1; 
guai=dlkl;
printf("手持凋零剑的黑色凶恶%s扑了过来!
",guai.name);
BattleAct();
}
else if(s=7){
battle=1;
guai=gst;
printf("一个巨大的触手向你打来,你挡了下来%s扑了过来!
",guai.name);
BattleAct();
} else{
battle=1;
guai=dljs;
printf("一只巨大的猛兽%s冲了过来!
",guai.name);
BattleAct();
}
}if(diaolingxin==0){
cout<<"你没有凋零之心,需要击败凋零女巫或凋零巨兽" <<endl;
}
break;
if(yewai!=0)
{
printf("该区域为未知区域,无法进入。
");system("color 89");
break;
}
}
if(yewai==0)
{
break;
printf("已离开荒野。");system("color 89");
}
}
}
break;
case 2:
ChooseWupin();
break; //显示道具,并可以使用.
case 3: //对话选项
if(place_sign==place.bar)
{
printf("要和谁说话?
1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人
"); system("color 89");//显示对话人物
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
printf("红发女郎:
吧台边那个Hunter好帅啊!(~脸红~)
听说他经常外出打猎,外面的路他应该很熟悉的!
");system("color 89");
break;
case 2:
if(fang1n<1&&gong1n<1)
{
printf("赏金猎人:
你要救公主啊!好胆量!
不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!
");system("color 89");
printf("%s心想:哇,这位大叔人真好啊!
)",player.name);
gong1n++;
fang1n++;
}
else printf("赏金猎人:
加油吧,年轻人!
不要被外面世界所吓倒!
");system("color 89");
break;
case 3:
printf("要喝点什么?
1,二锅头25金币 HP+20 2,伏特加80金币 HP+50 3,人头马面150金币 HP+100 0,返回
");system("color 89");
choose_number=1;
while(choose_number)
{
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(money<25){
printf("钱不够!");system("color 89");
}
else
{
if(player.health+20<=player.max_health){
printf("HP+20.");system("color 89");
money-=25;
player.health+=20;
}
else{
printf("HP满了");system("color 89");
player.health=player.max_health;
}
}
break;
case 2:
if(money<80){
printf("钱不够!");system("color 89");
}
else{
if(player.health+50<=player.max_health){
printf("HP+50.");system("color 89");
money-=80;
player.health+=50;
}
else{
printf("HP满了");system("color 89");
player.health=player.max_health;
}
}
break;
case 3:
if(money<150){
printf("钱不够!");system("color 89");
}
else{
if(player.health+100=100&&cao=150&&jijiubao=250&&baiyao=400&&superbaiyao=150){
jingyancao++;
money=money-150;
printf ("经验草+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
case 6:
if(money>=300){
jingyanbao++;
money=money-300;
printf ("经验包+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
case 7:
if(money>=500){
jingyanshi++;
money=money-500;
printf ("经验石+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
}
case 0:
printf("金币:%d
",money);system("color 89");
printf("再见,欢迎下次再来!
");system("color 89");
break;
}
if(mai==2){
printf("药品商人:去去去,老子没时间陪你聊。
");system("color 89");
}
}
}
else if(place_sign==place.hotel)
printf("“老板娘!我...”
“我忙着呢,没空理你~”
");
else printf("这里好像没人可以聊天
");system("color 89");
break;
case 4:
DisplayState();
break; //显示状态
case 5: //装备
printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,碧血战锤:%d个 4,尚方宝剑:%d个 5,雷霆之刃:%d个
",gong1n,gong2n,gong3n,gong4n,gong5n);system("color 89");
printf("防御装备: 6,布衣:%d个 7,铁甲:%d个 8,重甲:%d个 9,传说圣甲:%d个 10万龙甲:%d个		0,返回
",fang1n,fang2n,fang3n,fang4n,fang5n);system("color 89");
printf("选择要装备的武器或防具:
");system("color 89");
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(gong1n>=1){
printf("拿起了匕首
");system("color 89");
gong=gong1;
strcpy(gongname,"匕首");system("color 89");
}
else printf("你没有匕首可以装备
");system("color 89");
break;
case 2:
if(gong2n>=1){
printf("拿起了西洋剑
");system("color 89");
gong=gong2;
strcpy(gongname,"西洋剑");system("color 89");
}
else printf("你没有西洋剑可以装备
");system("color 89");
break;
case 3:
if(gong3n>=1){
printf("拿起了碧血战锤
");
gong=gong3;
strcpy(gongname,"碧血战锤");
}
else printf("你没有碧血战锤可以装备
");
break;
case 4:
if(gong4n>=1){
printf("拿起了尚方宝剑
");
gong=gong4;
strcpy(gongname,"尚方宝剑");
}
else printf("你没有尚方宝剑可以装备
");
break;
case 5:
if(gong5n>=1){
printf("拿起了雷霆之刃
");
gong=gong5;
strcpy(gongname,"雷霆之刃");
}
else printf("你没有雷霆之刃可以装备
");
break;
case 6:
if(fang1n>=1){
printf("穿上了布衣
");
fang=fang1;
strcpy(fangname,"布衣");
}
else printf("你没有布衣可以装备
");
break;
case 7:
if(fang2>=1){
printf("穿上了铁甲
");
fang=fang2;
strcpy(fangname,"铁甲");
}
else printf("你没有铁甲可以装备
");
break;
case 8:
if(fang3n>=1){
printf("穿上了重甲
");
fang=fang3;
strcpy(fangname,"重甲");
}
else printf("你没有重甲可以装备
");
break;
case 9:
if(fang4n>=1){
printf("穿上了传说圣甲
");
fang=fang4;
strcpy(fangname,"传说圣甲");
}
else printf("你没有传说圣甲可以装备
");
break;
case 10:
if(fang5n>=1){
printf("穿上了万龙甲
");
fang=fang5;
strcpy(fangname,"万龙甲");
}
else printf("你没有万龙甲可以装备
");
break; 
case 0:
printf("未更换装备
");
break;
default:
printf("change error!");
}
break;
case 6:
printf(" 您好,欢迎您玩苍穹世界。为了给您更好的游戏体验,zty时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty ”(不包括双引号)。我们在2.8版本内容的基础上进行修改,已修复该bug。并且新增了新副本、怪物、boss、道具等,希望大家喜欢。在这里要感谢吴昊同学,他给了我们许多宝贵的建议,谢谢。
");system("color 89");
break;
case 0:
printf("确定退出游戏?(Y/N)
");system("color 89");
getchar();
proof=getchar();
if(proof=='y'||proof=='Y'){
printf("数据存储中...");system("color 89");
//向文件中更新数据;
getchar();
printf("按回车退出");system("color 89");
getchar();
return;
}
else if(proof=='n'||proof=='N')printf("继续游戏!
");
else printf("继续!
");
break;
default:
printf("输入错误!
");
break;
case 7:
int mi;
cout<>mi;
if(mi%20120913==0){
cout<>> "<>htsr;
if(htsr==1){
cout<<"成功获得效果 *金币加9999
";
money+=9999;
}
if(htsr==2){
cout<<"成功获得效果 *血量加9999
";
player.health+=9999;
}
if(htsr==3){
cout<<"成功获得效果 *血量上限加9999
";
player.max_health+=9999;
}
if(htsr==4){
cout<<"成功获得效果 *攻击加9999
";
player.attack+=9999;
}
if(htsr==5){
cout<<"成功获得效果 *防御加9999
";
player.defense+=9999;
}
if(htsr%211==0){
cout<<"成功退出
";
continue;
}
}
else{
cout<<"输入错误!请检查!"<<endl;
continue;
}
break;
}
}
}
void DisplayState()
{
printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d 
",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
printf("武器: %s 防具: %s 
",gongname,fangname);
printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d 
",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
}
void BattleAct()
{
while(1)
{
puts("=============================================================================");
printf("要怎么办?
1,攻击 2,物品 3,查看状态 4,逃跑
");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
s=SuiJi();
printf("%s攻击! %sHP减少%d
",player.name,guai.name,player.attack+s+gong-guai.defense/3);
guai.health-=player.attack+s+gong-guai.defense/3;
if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
else continue;
case 2:
ChooseWupin();
break; //选择物品,可以使用,战斗中允许使用攻击性物品
case 3:
DisplayState();
break; //显示状态
case 4:
s=SuiJi();
if(s<4) //40%的概率可以逃跑
{
printf("%s逃跑了~
",player.name);
battle=0;
return;
}
else printf("%s逃跑失败!
",player.name);
break;
default:
printf("输入错误,重新输入!
");
}
}
}
void printf(char *p)
{
while(1)
{
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(100);
}
} 

2.10.1

#include
#include
#include
#include
#include //suiji
#include //SLEEP函数
using namespace std;
struct Player //玩家结构体,并初始化player
{
char name[21];
int attack;
int defense;
int health;
long int max_health;
int level;
int exp;
int range_exp;
long int max_exp;
} player= {"勇者",50,40,100,100,1,0,0,100};
struct Enemy //怪的结构体,并初始化各种怪
{
char name[20];
char wupin[20];
int attack;
int defense;
int health;
int money;
long int exp;
int wupin_sign;
int wupinpro;
int double_attack;
int miss;
} 
gl= {"格伦石人","石铠甲",30,150,1000,500,250,11,7,1,0},
zhizhu= {"洞穴蜘蛛","蜘蛛毒剑",140,20,250,400,200,12,5,1,0},
ymr= {"野蛮人","粗制石剑",20,20,150,100,50,13,5,1,0},
nz= {"牛仔","战斗马甲",100,20,350,500,250,14,10,1,0},
strongman= {"森林巨人","传说圣甲",40,50,350,200,100,1,5,1,0},
witch= {"兽人","重甲",25,15,100,50,50,2,4,1,1},
xiyi= {"森林蜥蜴","铁甲",18,10,50,30,35,3,8,2,2},
big_strongman= {"熔岩巨龙","巨龙晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
lion= {"皇家士兵","尚方宝剑",60,30,280,200,100,5,5,1,0},
horse= {"独眼巨人","碧血战锤",28,12,90,50,50,6,5,1,1},
bee= {"草原剑客","西洋剑",17,11,60,30,35,7,5,2,2},
shitu= {"凋零女巫","凋零之心",2000,700,20000,10000,5000,10,10,1,0},
dljs= {"凋零巨兽","凋零之心",2000,700,20000,10000,5000,10,10,1,0},
pika= {"皮卡超人","\0",300,40*8,1000,2000,1000,0,0,1,0},
dapika= {"雷霆皮卡","雷霆之刃",350,40*10,1500,3000,2000,8,6,6,0},
cl= {"中华长龙","\0",450,50*10,2000,3500,2500,0,0,1,0},
jl= {"东方金龙","万龙甲",500,40*20,5000,10000,5000,9,6,6,1},
gst={"凋零共生体","\0",1800,65*10,15000,0,4500,0,0,1,0},
dlkl= {"凋零骷髅","\0",3000,30*10,12000,0,5000,0,0,1,0},
dlfb= {".+*凋零风暴*+.","\0",18000,200*10,98000,0,500000,0,0,1,0},
guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
struct Place
{
int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3,te1,te2,te3,te4;
} place= {1,2,3,4,5,6,7,8,9,10,11,12};
int max_exp=0;
int htsr;
int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=10;
int cao=3,jijiubao=3,baiyao=3,superbaiyao=3,miansi=1,boom=3,dubiao=2,atom_boom=1;
int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0,fang5=200,fang5n=0,fang6=150,fang6n=0,fang7=60,fang7n=0;
int gong=0,gong1=10,gong1n=0,gong2=10,gong2n=0,gong3=45,gong3n=0,gong4=100,gong4n=0,gong5=500,gong5n=0,gong6=150,gong6n=0,gong7=35,gong7n=0;
int jingyancao=0,jingyanbao=0,jingyanshi=0,htmmcs=5;
int diaolingxin=0; 
char gongname[20]="无",fangname[20]="无";
char proof;
void AddWupin(int);
int AttackResult();
void BattleAct();  //      ____
void ChooseWupin();  //   /___/|
void DisplayState();  //  |   |/
void OrdinaryAct();     //▔▔
int SuiJi();
int SuiJi100();
void WhetherLevelUp();
void SlowDisplay(char *);
int main()
{
MessageBox (NULL, "欢迎来到斗破苍穹 2.10.1 正式版 !", "斗破苍穹 2.10.1 游戏开始提示", MB_OK);
int i=0,j=0,k=0;
char player_name[21];
Sleep(1000);
printf("                            _________________________________                    ");system("color 89");
printf("                          /________________________________/|                    ");system("color 89");
printf("                _.+=*^--{|欢迎来到 [苍穹世界] 2.10.1 正式版|}--^*=+.              ");system("color 89");
printf("                         ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔                       
");system("color 89");
//如果想使用外挂,名字请输入:“zty ”。
Sleep(1000);
printf("这里是苍穹世界! 契晋赫苟国的漓嘉茜公主被神秘老人绑架了!
伟大的勇者啊~拿起你的武器,营救公主!
输入你的名字: (20个字符)
");system("color 89");
scanf("%s",player_name);
strncpy(player.name,player_name,20);
if(strcmp(player.name,"zty")==0)
{
printf("
封印多年的郑族血统啊!你终于觉醒了!
zty,你成为了天选之人,请你救出公主吧!
");
player.attack=99999;
player.defense=99999;
player.health=999999;
player.max_health=999999;
}
getchar();
OrdinaryAct();
return 0;
}
int SuiJi()
{
srand((unsigned)time(NULL));
return rand()%10;
}
int SuiJi100()
{
srand((unsigned)time(NULL));
return rand()%100;
}
void ChooseWupin() //选择物品 并使用
{
printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨龙晶石%d个 12,免死金牌%d个 13,凋零之心%d个 0,返回
",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm,miansi,diaolingxin);system("color 8A");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(cao>0)
{
printf("使用止血草,HP增加120
");system("color 8A");
cao--;
if(player.health+120>player.max_health)player.health=player.max_health;
else player.health+=120;
}
else printf("没有止血草了
");system("color 8A");
break;
case 2:
if(jijiubao>0)
{
printf("使用急救包,HP增加180
");system("color 8A");
jijiubao--;
if(player.health+180>player.max_health)player.health=player.max_health;
else player.health+=180;
}
else printf("没有急救包了
");system("color 8A");
break;
case 3:
if(baiyao>0)
{
printf("使用云南白药,HP增加240
z
");system("color 8A");
baiyao--;
if(player.health+240>player.max_health)player.health=player.max_health;
else player.health+=240;
}
else printf("没有云南白药了
");system("color 8A");
break;
case 4:
if(superbaiyao>0)
{
printf("使用超级云南白药,HP增加400
");system("color 8A");
superbaiyao--;
if(player.health+400>player.max_health)player.health=player.max_health;
else player.health+=400;
}
else printf("没有超级云南白药了
");system("color 8A");
break;
case 5:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(boom>0)
{
printf("使用手雷,敌人HP减少100
");system("color 84");
boom--;
guai.health-=100;
AttackResult();
}
}
else printf("非战斗状态,不能使用手雷!
");system("color 84");
break;
case 6:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(dubiao>0)
{
printf("使用毒标,敌人HP减少200
");system("color 84");
dubiao--;
guai.health-=200;
AttackResult();
}
}
else printf("非战斗状态,不能使用毒标!
");system("color 84");
break;
case 7:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(atom_boom>0)
{
printf("使用手抛式原子弹,敌人HP减少1500
");system("color 84");
atom_boom--;
guai.health-=1500;
AttackResult();
}
}
else printf("非战斗状态,不能使用手抛式原子弹!
");system("color 84");
break;
case 8:
if(jingyancao>0 && player.level<200)
{
printf("使用经验草,等级增加3级
");system("color 8E");
jingyancao--;
player.max_health=player.max_health+60; 
player.attack+=9;
player.defense+=6;
player.level+=3;
player.health=player.max_health;
printf("等级:%d
",player.level);system("color 8E");
}
else    if(jingyancao0 && player.level197&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
jingyanbao--;
player.max_health=player.max_health+sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用经验包,等级增加%d级",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用经验包,等级增加5级
");system("color 8E");
jingyanbao--;
player.max_health=player.max_health+100; 
player.attack+=15;
player.defense+=10;
player.level+=5;
player.health=player.max_health;
printf("等级:%d
",player.level);system("color 8E");
}
}
else if(jingyanbao0 && player.level192&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
player.max_health+=sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用经验石,等级增加%d级
",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用经验石,等级增加10级
");system("color 8E");
jingyanshi--;
player.max_health=player.max_health+200; 
player.attack+=30;
player.defense+=20;
player.level+=10;
player.health=player.max_health;
}
}
else if(jingyanshi0 && player.level182&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
player.max_health=player.max_health+sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用巨龙晶石,等级增加%d级",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用巨龙晶石,等级增加20级
");system("color 8E");
strongman_arm--;
player.max_health=player.max_health+400; 
player.attack+=60;
player.defense+=40;
player.health+=999999;
player.level+=20;
printf("等级:%d
",player.level);system("color 8E");
}
}
else if(strongman_arm0)
{
printf("使用免死金牌,HP满
");system("color 8b");
miansi--;
if(player.health+999999>player.max_health)player.health=player.max_health;
else player.health+=999999;
}else printf("没有免死金牌了
"); system("color 8b");break;
break;
case 13:
if(diaolingxin>0)
{
printf("使用凋零之心
HP+100  攻击+100
");system("color 8b");
diaolingxin--;
player.health+=100;
player.attack+=100; 
}else printf("没有凋零之心了
"); system("color 8b");break;
case 0:
break;
default:
printf("ChooseWupin error!
");
}
}
int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
{
if(guai.health<=0)
{
battle=0;
printf("战斗胜利!获得金币%d,经验%d
",guai.money,guai.exp);system("color 8C");
player.exp+=guai.exp;
player.range_exp+=guai.exp;
money+=guai.money;
s=SuiJi();
if(s<guai.wupinpro)
{
printf("从敌人尸骸中发现");system("color 8C");
printf("%s
",guai.wupin);
AddWupin(guai.wupin_sign);
}
WhetherLevelUp();
if(strcmp(guai.name,"*凋零巨兽*")==0)
{
printf("你把公主救了出来
你从公主口中得知了一个更大的阴谋,你可以进入凋零世界
");system("color 8C");
}
return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
}
else
{
int s=SuiJi();
if((guai.attack+s-player.defense/3)<0)
{
player.health-=1;
printf("%s反击,你的HP减少了 1
",guai.name);system("color 8C");
}
else
{
player.health-=guai.attack+s-player.defense/3;
printf("%s反击,你的HP减少了%d
",guai.name,guai.attack+s-player.defense/3);system("color 8C");
}
if(player.health<0)
{
battle=0;
printf("%s战死!金币掉落%d
",player.name,player.level*500);system("color CC");
money-=player.level*500;
player.health=player.max_health/5;
OrdinaryAct();//
return 1;
}
}
return 0;
}
void AddWupin(int wupin_sign)
{
switch(wupin_sign)
{
case 1:
fang4n++;
break;
case 2:
fang3n++;
break;
case 3:
fang2n++;
break;
case 4:
strongman_arm++;
break;
case 5:
gong4n++;
break;
case 6:
gong3n++;
break;
case 7:
gong2n++;
break;
case 8:
gong5n++;
break;
case 9:
fang5n++;
break;
case 10:
diaolingxin++;
break;
case 11:
fang6n++;
break;
case 12:
gong6n++;
break;
case 13:
gong7n++;
break;
case 14:
fang7n++;
break;
default:
printf("AddWupin error
");
}
}
void WhetherLevelUp()
{
int i=0,j=0;
int l1=player.range_exp/200;
int l2=player.range_exp/500;
int l3=player.range_exp/1000;
if(player.level0) //15级以下,经验足够 都满足则升级
{
if(l1==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100;
}
else
{
printf("好厉害!连升%d级!",l1);system("color 8E");
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l1,2*l1,20*l1);system("color 8E");
player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
player.attack+=3*l1;
player.defense+=2*l1;
player.max_health+=20*l1;
player.health=player.max_health;
player.level+=l1;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100*l1;
}
}
else if(player.level0)
{
if(l2==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300;
}
else
{
printf("好厉害!连升%d级!",l1);system("color 8E");
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l2,2*l2,20*l2);system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l2;
player.defense+=2*l2;
player.max_health+=20*l2;
player.health=player.max_health;
player.level+=l2;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300*l2;
}
}
else if(l3>0)
{
if(l3==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600;
}
else
{
printf("好厉害!连升%d级!",l1);
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l3,2*l3,20*l3);system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l3;
player.defense+=2*l3;
player.max_health+=20*l3;
player.health=player.max_health;
player.level+=l3;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600*l3;
}
}
}
void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
{
while(1)
{
// \(1000);
// system("cls");
puts("=============================================================================");system("color 89");
printf("要做什么?
1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 7,打开后台 0,退出游戏
");system("color 89");
puts("=============================================================================");system("color 89");
switch(scanf("%d",&choose_number),choose_number)
{
case 1: //显示移动菜单
printf("要去哪里?
");system("color 89");
printf("1,小郑子酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野
");system("color 89");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
place_sign=place.bar; //记录目前位置-酒吧
// OrdinaryAct();
break;
case 2:
place_sign=place.hotel; //进入旅店
printf("金币:%d",money);system("color 89");
printf("要开房吗? 200个金币 1,是 0,否
");system("color 89");
choose_number=1;
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(money-200=300)
{
gong1n++;
money=money-300;
printf ("匕首+1
");system("color 89");
printf("匕首:%d个
",gong1n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
case 2:
if(money>=500)
{
gong2n++;
money=money-500;
printf ("西洋剑+1
");system("color 89");
printf("西洋剑:%d个
",gong2n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
case 3:
if(money>=1000)
{
gong3n++;
money=money-1000;
printf ("碧血战锤+1
");system("color 89");
printf("碧血战锤:%d个
",gong3n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
default:
printf("对不起,我们只会打造以上武器。");system("color 89");
break;
}
break;
case 2:
int fang;
printf("请问您要购买什么防具?
1,布衣¥300 2,铁甲¥500 3,重甲¥1000
");system("color 89");
scanf("%d",&fang);
switch(fang)
{
case 1:
if(money>=300)
{
fang1n++;
money=money-300;
printf ("布衣+1
");system("color 89");
printf("布衣:%d个
",fang1n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
}
break;
case 2:
if(money>=500)
{
fang2n++;
money=money-500;
printf ("铁甲+1
");system("color 89");
printf("铁甲:%d个
",fang2n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d",money);system("color 89");
}
break;
case 3:
if(money>=1000)
{
fang3n++;
money=money-1000;
printf ("重甲+1
");system("color 89");
printf("重甲:%d个
",fang3n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
}
default:
printf("对不起,我们只会打造以上防具。");system("color 89");
break;
}
printf("金币:%d
",money);system("color 89");
break;
case 3:
printf("请问您要购买什么一次性伤害武器?
1,手雷 2,毒镖 3,手抛式原子弹
");system("color 89");
int yi;
scanf("%d",&yi);
switch(yi)
{
case 1:
if(money>=300 && boom=600 && dubiao=1000 && atom_boom=shu)
{
gong1n=gong1n-shu;
money=money+shu*240;
printf("匕首:%d
",gong1n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("装备数不够,无法出售!
");system("color 89");
break;
}
break;
case 2:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong2n>=shu)
{
gong2n=gong2n-shu;
money=money+shu*400;
printf("西洋剑:%d
",gong2n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 3:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong7n>=shu)
{
gong7n=gong7n-shu;
money=money+shu*800;
printf("粗制石剑:%d
",gong7n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 4:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong3n>=shu)
{
gong3n=gong3n-shu;
money=money+shu*800;
printf("碧血战锤:%d
",gong3n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 5:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong6n>=shu)
{
gong6n=gong6n-shu;
money=money+shu*1000;
printf("蜘蛛毒剑:%d
",gong6n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 6:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong4n>=shu)
{
gong4n=gong4n-shu;
money=money+shu*1500;
printf("尚方宝剑:%d
",gong4n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 7:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong5n>=shu)
{
gong5n=gong5n-shu;
money=money+shu*3000;
printf("皮卡大剑:%d
",gong5n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 8:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang1n>=shu)
{
fang1n=fang1n-shu;
money=money+shu*240;
printf("布衣:%d
",fang1n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 9:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang2n>=shu)
{
fang2n=fang2n-shu;
money=money+shu*500;
printf("铁甲:%d
",fang2n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 10:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang7n>=shu)
{
fang7n=fang7n-shu;
money=money+shu*1000;
printf("战斗马甲:%d
",fang7n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 11:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang3n>=shu)
{
fang3n=fang3n-shu;
money=money+shu*800;
printf("重甲:%d
",fang3n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
break;
case 12:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang6n>=shu)
{
fang6n=fang6n-shu;
money=money+shu*2000;
printf("石凯甲:%d
",fang6n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 13:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang4n>=shu)
{
fang4n=fang4n-shu;
money=money+shu*1500;
printf("传说圣甲:%d
",fang4n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 14:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang5n>=shu)
{
fang5n=fang5n-shu;
money=money+shu*3000;
printf("万龙甲:%d
",fang5n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 15:
printf("请问您要出售几颗?");
scanf("%d",&shu);
if(strongman_arm>=shu)
{
strongman_arm=strongman_arm-shu;
money=money+shu*4000;
printf("巨龙晶石:%d
",strongman_arm);
printf("金币:%d
",money);
}
else
{
printf("晶石数不够,无法出售!
");
break;
}
break;
case 0:
break;
break;
default:
printf("没有该装备,无法出售!
");
break;
}
break;
case 5:
int yewai;
while(1)
{
puts("=============================================================================");
printf("要去哪冒险呢?");
printf("
1,神秘沼泽 危险程度:★
2,星耀草原 危险程度:★★★
3,诡异森林 危险程度:★★★
4,荒漠矿场 危险程度:★★★★
5,炽热炎洞 危险程度:★★★★★
6,皮卡超人游乐场 危险程度★★★★★★★
7,花朵宫殿 危险程度:★★★★★★
8,五千龙穴 危险程度:★★★★★★★
9,凋零宇宙 危险程度:★★★★★★★★
0,离开
");system("color 8c");
puts("=============================================================================");
scanf("%d",&yewai);
switch(yewai)
{
case 1:
place_sign=place.forest1;
s=SuiJi();
if(s<7)
{
battle=1;
guai=xiyi;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=witch;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
//不用调用OAct函数,会自动执行OAct函数;
}
break;
case 3:
place_sign=place.forest2;
s=SuiJi();
if(s<4)
{
battle=1;
guai=witch;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<7)
{
battle=1;
guai=strongman;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}
else
{
battle=1;
guai=zhizhu;
printf("可怕的%s爬了过来!
",guai.name);
BattleAct();
}
break;
case 5:
place_sign=place.forest3;
s=SuiJi();
if(s<=3){
battle=1;
guai=strongman;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<5){
battle=1;
guai=big_strongman;
printf("炽热的%s拍打着翅膀扑了过来!
",guai.name);
BattleAct();
} else if(s<8){
battle=1;
guai=gl;
printf("全身长满矿石的%s扑了过来!
",guai.name);
BattleAct();
}else{
battle=1;
guai=zhizhu;
printf("可怕的%s扑爬了过来!
",guai.name);
BattleAct();
} 
break;
case 2:
place_sign=place.grass1;
s=SuiJi();
if(s<=3){
battle=1;
guai=bee;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<5){
battle=1;
guai=horse;
printf("%s扑了过来!
",guai.name);
BattleAct();
}else if(s<8){
battle=1;
guai=ymr;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}else{
battle=1;
guai=nz;
printf("帅气但令人讨厌的%s向你开枪!
",guai.name);
BattleAct();
}
break;
case 4:
place_sign=place.grass2;
s=SuiJi();
if(s<5){
battle=1;
guai=horse;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<7){
battle=1;
guai=lion;
printf("%s举着尚方宝剑拦住了你!
",guai.name);
BattleAct();}
else{
battle=1;
guai=gl;
printf("全身长满矿石的%s扑了过来!
",guai.name);
BattleAct();
}
break;
case 6:
s=SuiJi();
if(s<7){
battle=1; 
guai=pika;
printf("你感到了强烈的电流涌入全身,%s走了过来!
",guai.name);
BattleAct();
}
else if(s<9){
battle=1;
guai=dapika;
printf("天空一声巨响,三道闪电劈到%s的身上,%s手持雷霆之刃冲了过来!
",guai.name,guai.name);
BattleAct();
}
else{
printf("这里安全
");
}
break;
case 8:
s=SuiJi();
if(s<=3)
{
battle=1; 
guai=cl;
printf("一条长龙横卧洞内,你定睛一看,是%s扑了过来!
",guai.name);
BattleAct();
}
else if(s=4)
{
battle=1; 
guai=big_strongman;
printf("炽热的%s拍打着翅膀扑了过来!
",guai.name);
BattleAct();
}
else {
battle=1;
guai=jl;
printf("一条金光闪闪的长龙盘旋空中,你定睛一看,是传说中的%s扑了过来!
",guai.name);
BattleAct();
}
break;
case 7:
place_sign=place.grass3;
s=SuiJi();
if(s<5)
{
battle=1;
guai=lion;
printf("%s举着尚方宝剑拦住了你!
",guai.name);
BattleAct();
}
else if(s=1)
{
printf("神秘老人:
哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨龙晶石我要了,公主你也别想带走!
");
guai=shitu;
printf("瞬间,你被一团黑雾笼罩,你被拉入了凋零幻境,%s向你发起攻击!
",guai.name);
BattleAct();
}
else printf("神秘老人:
年轻人,你好啊.如果你有巨龙晶石,我可以告诉你公主的下落哦~
");
}
else
{
battle=1;
guai=nz;
printf("帅气但令人讨厌的%s向你开枪!
",guai.name);
BattleAct();
}
break;
case 9:
s=SuiJi();
if(diaolingxin!=0){
if(s==1)
{
battle=1; 
guai=dlfb;
printf("一个巨大的黑暗物体,周围环绕着大量的由破碎方块组成的黑色颗粒云环的%s向你发起攻击!
",guai.name);
BattleAct();
}
else if(s<=2 && s<=4)
{
battle=1; 
guai=dlkl;
printf("手持凋零剑的黑色凶恶%s扑了过来!
",guai.name);
BattleAct();
}
else if(s=7){
battle=1;
guai=gst;
printf("一个巨大的触手向你打来,你挡了下来%s扑了过来!
",guai.name);
BattleAct();
} else{
battle=1;
guai=dljs;
printf("一只巨大的猛兽%s冲了过来!
",guai.name);
BattleAct();
}
}if(diaolingxin==0){
cout<<"你没有凋零之心,需要击败凋零巨兽" <<endl;
}
break;
if(yewai!=0)
{
printf("该区域为未知区域,无法进入。
");system("color 89");
break;
}
}
if(yewai==0)
{
break;
printf("已离开荒野。");system("color 89");
}
}
}
break;
case 2:
ChooseWupin();
break; //显示道具,并可以使用.
case 3: //对话选项
if(place_sign==place.bar)
{
printf("要和谁说话?
1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人
"); system("color 89");//显示对话人物
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
printf("红发女郎:
吧台边那个Hunter好帅啊!(~脸红~)
听说他经常外出打猎,外面的路他应该很熟悉的!
");system("color 89");
break;
case 2:
if(fang1n<1&&gong1n<1)
{
printf("赏金猎人:
你要救公主啊!好胆量!
不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!
");system("color 89");
printf("%s心想:哇,这位大叔人真好啊!
)",player.name);
gong1n++;
fang1n++;
}
else printf("赏金猎人:
加油吧,年轻人!
不要被外面世界所吓倒!
");system("color 89");
break;
case 3:
printf("要喝点什么?
1,二锅头25金币 HP+20 2,伏特加80金币 HP+50 3,人头马面150金币 HP+100 0,返回
");system("color 89");
choose_number=1;
while(choose_number)
{
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(money<25){
printf("钱不够!");system("color 89");
}
else
{
if(player.health+20<=player.max_health){
printf("HP+20.");system("color 89");
money-=25;
player.health+=20;
}
else{
printf("HP满了");system("color 89");
player.health=player.max_health;
}
}
break;
case 2:
if(money<80){
printf("钱不够!");system("color 89");
}
else{
if(player.health+50<=player.max_health){
printf("HP+50.");system("color 89");
money-=80;
player.health+=50;
}
else{
printf("HP满了");system("color 89");
player.health=player.max_health;
}
}
break;
case 3:
if(money<150){
printf("钱不够!");system("color 89");
}
else{
if(player.health+100=100&&cao=150&&jijiubao=250&&baiyao=400&&superbaiyao=150){
jingyancao++;
money=money-150;
printf ("经验草+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
case 6:
if(money>=300){
jingyanbao++;
money=money-300;
printf ("经验包+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
case 7:
if(money>=500){
jingyanshi++;
money=money-500;
printf ("经验石+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
}
case 0:
printf("金币:%d
",money);system("color 89");
printf("再见,欢迎下次再来!
");system("color 89");
break;
}
if(mai==2){
printf("药品商人:去去去,老子没时间陪你聊。
");system("color 89");
}
}
}
else if(place_sign==place.hotel)
printf("“老板娘!我...”
“我忙着呢,没空理你~”
");
else printf("这里好像没人可以聊天
");system("color 89");
break;
case 4:
DisplayState();
break; //显示状态
case 5: //装备
printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,粗制石剑:%d个 4,碧血战锤:%d个 5,蜘蛛毒剑:%d个 6,尚方宝剑:%d个 7,雷霆之刃:%d个
",gong1n,gong2n,gong7n,gong3n,gong6n,gong4n,gong5n);system("color 89");
printf("防御装备: 8,布衣:%d个 9,铁甲:%d个 10,战斗马甲:%d个 11,重甲:%d个 12,石铠甲:%d个 13,传说圣甲:%d个 14,万龙甲:%d个		0,返回
",fang1n,fang2n,fang7n,fang3n,fang6n,fang4n,fang5n);system("color 89");
printf("选择要装备的武器或防具:
");system("color 89");
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(gong1n>=1){
printf("拿起了匕首
");system("color 89");
gong=gong1;
strcpy(gongname,"匕首");system("color 89");
}
else printf("你没有匕首可以装备
");system("color 89");
break;
case 2:
if(gong2n>=1){
printf("拿起了西洋剑
");system("color 89");
gong=gong2;
strcpy(gongname,"西洋剑");system("color 89");
}
else printf("你没有西洋剑可以装备
");system("color 89");
break;
case 3:
if(gong7n>=1){
printf("拿起了粗制石剑
");
gong=gong7;
strcpy(gongname,"粗制石剑");
}
else printf("你没有粗制石剑可以装备
");
break;
case 4:
if(gong3n>=1){
printf("拿起了碧血战锤
");
gong=gong3;
strcpy(gongname,"碧血战锤");
}
else printf("你没有碧血战锤可以装备
");
break;
case 5:
if(gong6n>=1){
printf("拿起了蜘蛛毒剑
");
gong=gong6;
strcpy(gongname,"蜘蛛毒剑");
}
else printf("你没有蜘蛛毒剑可以装备
");
break;
case 6:
if(gong4n>=1){
printf("拿起了尚方宝剑
");
gong=gong4;
strcpy(gongname,"尚方宝剑");
}
else printf("你没有尚方宝剑可以装备
");
break;
case 7:
if(gong5n>=1){
printf("拿起了雷霆之刃
");
gong=gong5;
strcpy(gongname,"雷霆之刃");
}
else printf("你没有雷霆之刃可以装备
");
break;
case 8:
if(fang1n>=1){
printf("穿上了布衣
");
fang=fang1;
strcpy(fangname,"布衣");
}
else printf("你没有布衣可以装备
");
break;
case 9:
if(fang2n>=1){
printf("穿上了铁甲
");
fang=fang2;
strcpy(fangname,"铁甲");
}
else printf("你没有铁甲可以装备
");
break;
case 10:
if(fang7n>=1){
printf("穿上了战斗马甲
");
fang=fang7;
strcpy(fangname,"战斗马甲");
}
else printf("你没有战斗马甲可以装备
");
break;
case 11:
if(fang3n>=1){
printf("穿上了重甲
");
fang=fang3;
strcpy(fangname,"重甲");
}
else printf("你没有重甲可以装备
");
break;
case 12:
if(fang6n>=1){
printf("穿上了石铠甲
");
fang=fang6;
strcpy(fangname,"石凯甲");
}
else printf("你没有石凯甲可以装备
");
break;
case 13:
if(fang4n>=1){
printf("穿上了传说圣甲
");
fang=fang4;
strcpy(fangname,"传说圣甲");
}
else printf("你没有传说圣甲可以装备
");
break;
case 14:
if(fang5n>=1){
printf("穿上了万龙甲
");
fang=fang5;
strcpy(fangname,"万龙甲");
}
else printf("你没有万龙甲可以装备
");
break; 
case 0:
printf("未更换装备
");
break;
default:
printf("change error!");
}
break;
case 6:
printf(" 您好,欢迎您玩苍穹世界(斗破苍穹)。为了给您更好的游戏体验,zty时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty ”(不包括双引号)。我们在2.9版本内容的基础上进行修改,新增了四个新怪物和武器装备,希望大家喜欢。在这里要感谢吴昊同学,他给了我们许多宝贵的建议,谢谢。
");system("color 89");
break;
case 0:
printf("确定退出游戏?(Y/N)
");system("color 89");
getchar();
proof=getchar();
if(proof=='y'||proof=='Y'){
printf("按回车退出");system("color 89");
getchar();
return;
}
else if(proof=='n'||proof=='N')printf("继续游戏!
");
else printf("继续!
");
break;
default:
printf("输入错误!
");
break;
case 7:
int mi;
cout<>mi;
if(mi%20120913==0){
cout<>> "<>htsr;
if(htsr==1){
cout<<"成功获得效果 *金币加9999
";
money+=999999;
}
if(htsr==2){
cout<<"成功获得效果 *血量加9999
";
player.health+=9999;
}
if(htsr==3){
cout<<"成功获得效果 *血量上限加9999
";
player.max_health+=9999;
}
if(htsr==4){
cout<<"成功获得效果 *攻击加9999
";
player.attack+=9999;
}
if(htsr==5){
cout<<"成功获得效果 *防御加9999
";
player.defense+=9999;
}
if(htsr%211==0){
cout<<"成功退出
";
continue;
}
}
else{
cout<<"输入错误!请检查!"<<endl;
continue;
}
break;
}
}
}
void DisplayState()
{
printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d 
",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
printf("武器: %s 防具: %s 
",gongname,fangname);
printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d 
",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
}
void BattleAct()
{
while(1)
{
puts("=============================================================================");
printf("要怎么办?
1,攻击 2,物品 3,查看状态 4,逃跑
");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
s=SuiJi();
printf("%s攻击! %sHP减少%d
",player.name,guai.name,player.attack+s+gong-guai.defense/3);
guai.health-=player.attack+s+gong-guai.defense/3;
if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
else continue;
case 2:
ChooseWupin();
break; //选择物品,可以使用,战斗中允许使用攻击性物品
case 3:
DisplayState();
break; //显示状态
case 4:
s=SuiJi();
if(s<4) //40%的概率可以逃跑
{
printf("%s逃跑了~
",player.name);
battle=0;
return;
}
else printf("%s逃跑失败!
",player.name);
break;
default:
printf("输入错误,重新输入!
");
}
}
}
void printf(char *p)
{
while(1)
{
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(100);
}
} 

2.10.2

#include
#include
#include
#include
#include //suiji
#include //SLEEP函数
using namespace std;
struct Player //玩家结构体,并初始化player
{
char name[21];
int attack;
int defense;
int health;
long int max_health;
int level;
int exp;
int range_exp;
long int max_exp;
} player= {"勇者",100,80,200,200,1,0,0,100};
struct Enemy //怪的结构体,并初始化各种怪
{
char name[20];
char wupin[20];
int attack;
int defense;
int health;
int money;
long int exp;
int wupin_sign;
int wupinpro;
int double_attack;
int miss;
} 
gl= {"格伦石人","石铠甲",30,150,1000,500,250,11,7,1,0},
zhizhu= {"洞穴蜘蛛","蜘蛛毒剑",140,20,250,400,200,12,5,1,0},
ymr= {"野蛮人","粗制石剑",20,20,150,100,50,13,5,1,0},
nz= {"牛仔","战斗马甲",80,20,250,500,250,14,10,1,0},
strongman= {"森林巨人","传说圣甲",50,50,580,200,100,1,5,1,0},
witch= {"兽人","重甲",35,55,250,50,50,2,4,1,1},
xiyi= {"森林蜥蜴","铁甲",20,25,80,30,35,3,8,2,2},
big_strongman= {"熔岩巨龙","巨龙晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
lion= {"皇家士兵","尚方宝剑",100,30,380,200,100,5,5,1,0},
horse= {"独眼巨人","碧血战锤",50,22,360,50,50,6,5,1,1},
bee= {"草原剑客","西洋剑",27,11,60,30,35,7,5,2,2},
shitu= {"凋零女巫","凋零之心",1400,500,15000,10000,5000,10,10,1,0},
dljs= {"凋零巨兽","凋零之心",1200,700,20000,10000,5000,10,7,1,0},
pika= {"皮卡超人","\0",300,40*8,1000,2000,1000,0,0,1,0},
dapika= {"雷霆皮卡","雷霆之刃",350,40*10,1500,3000,2000,8,6,6,0},
cl= {"中华长龙","\0",450,50*10,2000,3500,2500,0,0,1,0},
jl= {"东方金龙","万龙甲",500,40*20,5000,8000,4500,9,6,6,1},
gst={"凋零共生体","\0",1800,65*10,15000,0,10000,0,0,1,0},
dlkl= {"凋零骷髅","\0",3000,30*10,12000,0,10000,0,0,1,0},
dlfb= {".+*凋零风暴*+.","\0",9000,1500,49000,0,500000,0,0,1,0},
guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
struct Place
{
int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3,te1,te2,te3,te4;
} place= {1,2,3,4,5,6,7,8,9,10,11,12};
int max_exp=0;
int htsr;
int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=10;
int cao=3,jijiubao=3,baiyao=3,superbaiyao=3,miansi=1,boom=3,dubiao=2,atom_boom=1;
int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0,fang5=400,fang5n=0,fang6=150,fang6n=0,fang7=60,fang7n=0;
int gong=0,gong1=10,gong1n=0,gong2=20,gong2n=0,gong3=45,gong3n=0,gong4=100,gong4n=0,gong5=300,gong5n=0,gong6=150,gong6n=0,gong7=35,gong7n=0;
int jingyancao=0,jingyanbao=0,jingyanshi=0,htmmcs=5;
int diaolingxin=0; 
char gongname[20]="无",fangname[20]="无";
char proof;
void AddWupin(int);
int AttackResult();
void BattleAct();  //      ____
void ChooseWupin();  //   /___/|
void DisplayState();  //  |   |/
void OrdinaryAct();     //▔▔
int SuiJi();
int SuiJi100();
void WhetherLevelUp();
void SlowDisplay(char *);
int main()
{
MessageBox (NULL, "欢迎来到斗破苍穹 2.10.2 正式版 !", "斗破苍穹 2.10.2 游戏开始提示", MB_OK);
int i=0,j=0,k=0;
char player_name[21];
Sleep(1000);
printf("                            _________________________________                    ");system("color 89");
printf("                          /________________________________/|                    ");system("color 89");
printf("                _.+=*^--{|欢迎来到 [斗破苍穹] 2.10.2 正式版|}--^*=+.              ");system("color 89");
printf("                         ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔                       
");system("color 89");
//如果想使用外挂,名字请输入:“zty ”。
Sleep(1000);
printf("这里是斗破苍穹(苍穹世界)! 契晋赫苟国的漓嘉茜公主被神秘人绑架了!
伟大的勇者啊~拿起你的武器,营救公主!
输入你的名字: (20个字符)
");system("color 89");
scanf("%s",player_name);
strncpy(player.name,player_name,20);
if(strcmp(player.name,"zty")==0)
{
printf("
封印多年的zty族血统啊!你终于觉醒了!
zty,你成为了天选之人,请你救出公主吧!
");
player.attack=99999;
player.defense=99999;
player.health=999999;
player.max_health=999999;
}
getchar();
OrdinaryAct();
return 0;
}
int SuiJi()
{
srand((unsigned)time(NULL));
return rand()%10;
}
int SuiJi100()
{
srand((unsigned)time(NULL));
return rand()%100;
}
void ChooseWupin() //选择物品 并使用
{
printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨龙晶石%d个 12,免死金牌%d个 13,凋零之心%d个 0,返回
",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm,miansi,diaolingxin);system("color 8A");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(cao>0)
{
printf("使用止血草,HP增加120
");system("color 8A");
cao--;
if(player.health+120>player.max_health)player.health=player.max_health;
else player.health+=120;
}
else printf("没有止血草了
");system("color 8A");
break;
case 2:
if(jijiubao>0)
{
printf("使用急救包,HP增加180
");system("color 8A");
jijiubao--;
if(player.health+180>player.max_health)player.health=player.max_health;
else player.health+=180;
}
else printf("没有急救包了
");system("color 8A");
break;
case 3:
if(baiyao>0)
{
printf("使用云南白药,HP增加240
z
");system("color 8A");
baiyao--;
if(player.health+240>player.max_health)player.health=player.max_health;
else player.health+=240;
}
else printf("没有云南白药了
");system("color 8A");
break;
case 4:
if(superbaiyao>0)
{
printf("使用超级云南白药,HP增加400
");system("color 8A");
superbaiyao--;
if(player.health+400>player.max_health)player.health=player.max_health;
else player.health+=400;
}
else printf("没有超级云南白药了
");system("color 8A");
break;
case 5:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(boom>0)
{
printf("使用手雷,敌人HP减少100
");system("color 84");
boom--;
guai.health-=100;
AttackResult();
}
}
else printf("非战斗状态,不能使用手雷!
");system("color 84");
break;
case 6:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(dubiao>0)
{
printf("使用毒标,敌人HP减少200
");system("color 84");
dubiao--;
guai.health-=200;
AttackResult();
}
}
else printf("非战斗状态,不能使用毒标!
");system("color 84");
break;
case 7:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(atom_boom>0)
{
printf("使用手抛式原子弹,敌人HP减少1500
");system("color 84");
atom_boom--;
guai.health-=1500;
AttackResult();
}
}
else printf("非战斗状态,不能使用手抛式原子弹!
");system("color 84");
break;
case 8:
if(jingyancao>0 && player.level<200)
{
printf("使用经验草,等级增加3级
");system("color 8E");
jingyancao--;
player.max_health=player.max_health+60; 
player.attack+=9;
player.defense+=6;
player.level+=3;
player.health=player.max_health;
printf("等级:%d
",player.level);system("color 8E");
}
else    if(jingyancao0 && player.level197&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
jingyanbao--;
player.max_health=player.max_health+sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用经验包,等级增加%d级",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用经验包,等级增加5级
");system("color 8E");
jingyanbao--;
player.max_health=player.max_health+100; 
player.attack+=15;
player.defense+=10;
player.level+=5;
player.health=player.max_health;
printf("等级:%d
",player.level);system("color 8E");
}
}
else if(jingyanbao0 && player.level192&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
player.max_health+=sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用经验石,等级增加%d级
",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用经验石,等级增加10级
");system("color 8E");
jingyanshi--;
player.max_health=player.max_health+200; 
player.attack+=30;
player.defense+=20;
player.level+=10;
player.health=player.max_health;
}
}
else if(jingyanshi0 && player.level182&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
player.max_health=player.max_health+sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用巨龙晶石,等级增加%d级",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用巨龙晶石,等级增加20级
");system("color 8E");
strongman_arm--;
player.max_health=player.max_health+400; 
player.attack+=60;
player.defense+=40;
player.health+=999999;
player.level+=20;
printf("等级:%d
",player.level);system("color 8E");
}
}
else if(strongman_arm0)
{
printf("使用免死金牌,HP满
");system("color 8b");
miansi--;
if(player.health+999999>player.max_health)player.health=player.max_health;
else player.health+=999999;
}else printf("没有免死金牌了
"); system("color 8b");break;
break;
case 13:
if(diaolingxin>0)
{
printf("使用凋零之心
HP+100  攻击+100
");system("color 8b");
diaolingxin--;
player.health+=100;
player.attack+=100; 
}else printf("没有凋零之心了
"); system("color 8b");break;
case 0:
break;
default:
printf("ChooseWupin error!
");
}
}
int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
{
if(guai.health<=0)
{
battle=0;
printf("战斗胜利!获得金币%d,经验%d
",guai.money,guai.exp);system("color 8C");
player.exp+=guai.exp;
player.range_exp+=guai.exp;
money+=guai.money;
s=SuiJi();
if(s<guai.wupinpro)
{
printf("从敌人尸骸中发现");system("color 8C");
printf("%s
",guai.wupin);
AddWupin(guai.wupin_sign);
}
WhetherLevelUp();
if(strcmp(guai.name,"*凋零巨兽*")==0)
{
printf("你把公主救了出来
你从公主口中得知了一个更大的阴谋,你可以进入凋零世界
");system("color 8C");
}
return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
}
else
{
int s=SuiJi();
if((guai.attack+s-player.defense/3)<0)
{
player.health-=1;
printf("%s反击,你的HP减少了 1
",guai.name);system("color 8C");
}
else
{
player.health-=guai.attack+s-player.defense/3;
printf("%s反击,你的HP减少了%d
",guai.name,guai.attack+s-player.defense/3);system("color 8C");
}
if(player.health<0)
{
battle=0;
printf("%s战死!金币掉落%d
",player.name,player.level*500);system("color CC");
money-=player.level*500;
player.health=player.max_health/5;
OrdinaryAct();//
return 1;
}
}
return 0;
}
void AddWupin(int wupin_sign)
{
switch(wupin_sign)
{
case 1:
fang4n++;
break;
case 2:
fang3n++;
break;
case 3:
fang2n++;
break;
case 4:
strongman_arm++;
break;
case 5:
gong4n++;
break;
case 6:
gong3n++;
break;
case 7:
gong2n++;
break;
case 8:
gong5n++;
break;
case 9:
fang5n++;
break;
case 10:
diaolingxin++;
break;
case 11:
fang6n++;
break;
case 12:
gong6n++;
break;
case 13:
gong7n++;
break;
case 14:
fang7n++;
break;
default:
printf("AddWupin error
");
}
}
void WhetherLevelUp()
{
int i=0,j=0;
int l1=player.range_exp/150;
int l2=player.range_exp/375;
int l3=player.range_exp/750;
if(player.level0) //15级以下,经验足够 都满足则升级
{
if(l1==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100;
}
else
{
printf("好厉害!连升%d级!",l1);system("color 8E");
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l1,2*l1,20*l1);system("color 8E");
player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
player.attack+=3*l1;
player.defense+=2*l1;
player.max_health+=20*l1;
player.health=player.max_health;
player.level+=l1;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100*l1;
}
}
else if(player.level0)
{
if(l2==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300;
}
else
{
printf("好厉害!连升%d级!",l1);system("color 8E");
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l2,2*l2,20*l2);system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l2;
player.defense+=2*l2;
player.max_health+=20*l2;
player.health=player.max_health;
player.level+=l2;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300*l2;
}
}
else if(l3>0)
{
if(l3==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600;
}
else
{
printf("好厉害!连升%d级!",l1);
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l3,2*l3,20*l3);system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l3;
player.defense+=2*l3;
player.max_health+=20*l3;
player.health=player.max_health;
player.level+=l3;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600*l3;
}
}
}
void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
{
while(1)
{
// \(1000);
// system("cls");
puts("=============================================================================");system("color 89");
printf("要做什么?
1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 7,打开后台 0,退出游戏
");system("color 89");
puts("=============================================================================");system("color 89");
switch(scanf("%d",&choose_number),choose_number)
{
case 1: //显示移动菜单
printf("要去哪里?
");system("color 89");
printf("1,小郑子酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野
");system("color 89");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
place_sign=place.bar; //记录目前位置-酒吧
// OrdinaryAct();
break;
case 2:
place_sign=place.hotel; //进入旅店
printf("金币:%d",money);system("color 89");
printf("要开房吗? 200个金币 1,是 0,否
");system("color 89");
choose_number=1;
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(money-200=300)
{
gong1n++;
money=money-300;
printf ("匕首+1
");system("color 89");
printf("匕首:%d个
",gong1n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
case 2:
if(money>=500)
{
gong2n++;
money=money-500;
printf ("西洋剑+1
");system("color 89");
printf("西洋剑:%d个
",gong2n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
case 3:
if(money>=1000)
{
gong3n++;
money=money-1000;
printf ("碧血战锤+1
");system("color 89");
printf("碧血战锤:%d个
",gong3n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
default:
printf("对不起,我们只会打造以上武器。");system("color 89");
break;
}
break;
case 2:
int fang;
printf("请问您要购买什么防具?
1,布衣¥300 2,铁甲¥500 3,重甲¥1000
");system("color 89");
scanf("%d",&fang);
switch(fang)
{
case 1:
if(money>=300)
{
fang1n++;
money=money-300;
printf ("布衣+1
");system("color 89");
printf("布衣:%d个
",fang1n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
}
break;
case 2:
if(money>=500)
{
fang2n++;
money=money-500;
printf ("铁甲+1
");system("color 89");
printf("铁甲:%d个
",fang2n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d",money);system("color 89");
}
break;
case 3:
if(money>=1000)
{
fang3n++;
money=money-1000;
printf ("重甲+1
");system("color 89");
printf("重甲:%d个
",fang3n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
}
default:
printf("对不起,我们只会打造以上防具。");system("color 89");
break;
}
printf("金币:%d
",money);system("color 89");
break;
case 3:
printf("请问您要购买什么一次性伤害武器?
1,手雷 2,毒镖 3,手抛式原子弹
");system("color 89");
int yi;
scanf("%d",&yi);
switch(yi)
{
case 1:
if(money>=300 && boom=600 && dubiao=1000 && atom_boom=shu)
{
gong1n=gong1n-shu;
money=money+shu*240;
printf("匕首:%d
",gong1n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("装备数不够,无法出售!
");system("color 89");
break;
}
break;
case 2:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong2n>=shu)
{
gong2n=gong2n-shu;
money=money+shu*400;
printf("西洋剑:%d
",gong2n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 3:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong7n>=shu)
{
gong7n=gong7n-shu;
money=money+shu*800;
printf("粗制石剑:%d
",gong7n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 4:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong3n>=shu)
{
gong3n=gong3n-shu;
money=money+shu*800;
printf("碧血战锤:%d
",gong3n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 5:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong6n>=shu)
{
gong6n=gong6n-shu;
money=money+shu*1000;
printf("蜘蛛毒剑:%d
",gong6n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 6:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong4n>=shu)
{
gong4n=gong4n-shu;
money=money+shu*1500;
printf("尚方宝剑:%d
",gong4n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 7:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong5n>=shu)
{
gong5n=gong5n-shu;
money=money+shu*3000;
printf("皮卡大剑:%d
",gong5n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 8:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang1n>=shu)
{
fang1n=fang1n-shu;
money=money+shu*240;
printf("布衣:%d
",fang1n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 9:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang2n>=shu)
{
fang2n=fang2n-shu;
money=money+shu*500;
printf("铁甲:%d
",fang2n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 10:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang7n>=shu)
{
fang7n=fang7n-shu;
money=money+shu*1000;
printf("战斗马甲:%d
",fang7n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 11:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang3n>=shu)
{
fang3n=fang3n-shu;
money=money+shu*800;
printf("重甲:%d
",fang3n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
break;
case 12:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang6n>=shu)
{
fang6n=fang6n-shu;
money=money+shu*2000;
printf("石凯甲:%d
",fang6n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 13:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang4n>=shu)
{
fang4n=fang4n-shu;
money=money+shu*1500;
printf("传说圣甲:%d
",fang4n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 14:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang5n>=shu)
{
fang5n=fang5n-shu;
money=money+shu*3000;
printf("万龙甲:%d
",fang5n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 15:
printf("请问您要出售几颗?");
scanf("%d",&shu);
if(strongman_arm>=shu)
{
strongman_arm=strongman_arm-shu;
money=money+shu*4000;
printf("巨龙晶石:%d
",strongman_arm);
printf("金币:%d
",money);
}
else
{
printf("晶石数不够,无法出售!
");
break;
}
break;
case 0:
break;
break;
default:
printf("没有该装备,无法出售!
");
break;
}
break;
case 5:
int yewai;
while(1)
{
puts("=============================================================================");
printf("要去哪冒险呢?");
printf("
1,神秘沼泽 危险程度:★
2,星耀草原 危险程度:★★★
3,诡异森林 危险程度:★★★
4,荒漠矿场 危险程度:★★★★
5,炽热炎洞 危险程度:★★★★★
6,皮卡营地 危险程度★★★★★★
7,花朵宫殿 危险程度:★★★★★★
8,五千龙穴 危险程度:★★★★★★★
9,凋零宇宙 危险程度:★★★★★★★★
0,离开
");system("color 8c");
puts("=============================================================================");
scanf("%d",&yewai);
switch(yewai)
{
case 1:
place_sign=place.forest1;
s=SuiJi();
if(s<7)
{
battle=1;
guai=xiyi;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=witch;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
//不用调用OAct函数,会自动执行OAct函数;
}
break;
case 3:
place_sign=place.forest2;
s=SuiJi();
if(s<4)
{
battle=1;
guai=witch;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<7)
{
battle=1;
guai=strongman;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}
else
{
battle=1;
guai=zhizhu;
printf("可怕的%s爬了过来!
",guai.name);
BattleAct();
}
break;
case 5:
place_sign=place.forest3;
s=SuiJi();
if(s<=3){
battle=1;
guai=strongman;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<5){
battle=1;
guai=big_strongman;
printf("炽热的%s拍打着翅膀扑了过来!
",guai.name);
BattleAct();
} else if(s<8){
battle=1;
guai=gl;
printf("全身长满矿石的%s扑了过来!
",guai.name);
BattleAct();
}else{
battle=1;
guai=zhizhu;
printf("可怕的%s扑爬了过来!
",guai.name);
BattleAct();
} 
break;
case 2:
place_sign=place.grass1;
s=SuiJi();
if(s<=3){
battle=1;
guai=bee;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<5){
battle=1;
guai=horse;
printf("%s扑了过来!
",guai.name);
BattleAct();
}else if(s<8){
battle=1;
guai=ymr;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}else{
battle=1;
guai=nz;
printf("帅气但令人讨厌的%s向你开枪!
",guai.name);
BattleAct();
}
break;
case 4:
place_sign=place.grass2;
s=SuiJi();
if(s<5){
battle=1;
guai=horse;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<7){
battle=1;
guai=lion;
printf("%s举着尚方宝剑拦住了你!
",guai.name);
BattleAct();}
else{
battle=1;
guai=gl;
printf("全身长满矿石的%s扑了过来!
",guai.name);
BattleAct();
}
break;
case 6:
s=SuiJi();
if(s<7){
battle=1; 
guai=pika;
printf("你感到了强烈的电流涌入全身,%s走了过来!
",guai.name);
BattleAct();
}
else if(s<9){
battle=1;
guai=dapika;
printf("天空一声巨响,三道闪电劈到%s的身上,%s手持雷霆之刃冲了过来!
",guai.name,guai.name);
BattleAct();
}
else{
printf("这里安全
");
}
break;
case 8:
s=SuiJi();
if(s<=3)
{
battle=1; 
guai=cl;
printf("一条长龙横卧洞内,你定睛一看,是%s扑了过来!
",guai.name);
BattleAct();
}
else if(s=4)
{
battle=1; 
guai=big_strongman;
printf("炽热的%s拍打着翅膀扑了过来!
",guai.name);
BattleAct();
}
else {
battle=1;
guai=jl;
printf("一条金光闪闪的长龙盘旋空中,你定睛一看,是传说中的%s扑了过来!
",guai.name);
BattleAct();
}
break;
case 7:
place_sign=place.grass3;
s=SuiJi();
if(s<5)
{
battle=1;
guai=lion;
printf("%s举着尚方宝剑拦住了你!
",guai.name);
BattleAct();
}
else if(s=1)
{
printf("神秘老人:
哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨龙晶石我要了,公主你也别想带走!
");
guai=shitu;
printf("瞬间,你被一团黑雾笼罩,你被拉入了凋零幻境,%s向你发起攻击!
",guai.name);
BattleAct();
}
else printf("神秘老人:
年轻人,你好啊.如果你有巨龙晶石,我可以告诉你公主的下落哦~
");
}
else
{
battle=1;
guai=nz;
printf("帅气但令人讨厌的%s向你开枪!
",guai.name);
BattleAct();
}
break;
case 9:
s=SuiJi();
if(diaolingxin!=0){
if(s==1)
{
battle=1; 
guai=dlfb;
printf("一个巨大的黑暗物体,周围环绕着大量的由破碎方块组成的黑色颗粒云环的%s向你发起攻击!
",guai.name);
BattleAct();
}
else if(s<=2 && s<=4)
{
battle=1; 
guai=dlkl;
printf("手持凋零剑的黑色凶恶%s扑了过来!
",guai.name);
BattleAct();
}
else if(s=7){
battle=1;
guai=gst;
printf("一个巨大的触手向你打来,你挡了下来%s扑了过来!
",guai.name);
BattleAct();
} else{
battle=1;
guai=dljs;
printf("一只巨大的猛兽%s冲了过来!
",guai.name);
BattleAct();
}
}if(diaolingxin==0){
cout<<"你没有凋零之心,需要击败凋零巨兽" <<endl;
}
break;
if(yewai!=0)
{
printf("该区域为未知区域,无法进入。
");system("color 89");
break;
}
}
if(yewai==0)
{
break;
printf("已离开荒野。");system("color 89");
}
}
}
break;
case 2:
ChooseWupin();
break; //显示道具,并可以使用.
case 3: //对话选项
if(place_sign==place.bar)
{
printf("要和谁说话?
1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人
"); system("color 89");//显示对话人物
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
printf("红发女郎:
吧台边那个Hunter好帅啊!(~脸红~)
听说他经常外出打猎,外面的路他应该很熟悉的!
");system("color 89");
break;
case 2:
if(fang1n<1&&gong1n<1)
{
printf("赏金猎人:
你要救公主啊!好胆量!
不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!
");system("color 89");
printf("%s心想:哇,这位大叔人真好啊!
)",player.name);
gong1n++;
fang1n++;
}
else printf("赏金猎人:
加油吧,年轻人!
不要被外面世界所吓倒!
");system("color 89");
break;
case 3:
printf("要喝点什么?
1,二锅头25金币 HP+20 2,伏特加80金币 HP+50 3,人头马面150金币 HP+100 0,返回
");system("color 89");
choose_number=1;
while(choose_number)
{
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(money<25){
printf("钱不够!");system("color 89");
}
else
{
if(player.health+20<=player.max_health){
printf("HP+20.");system("color 89");
money-=25;
player.health+=20;
}
else{
printf("HP满了");system("color 89");
player.health=player.max_health;
}
}
break;
case 2:
if(money<80){
printf("钱不够!");system("color 89");
}
else{
if(player.health+50<=player.max_health){
printf("HP+50.");system("color 89");
money-=80;
player.health+=50;
}
else{
printf("HP满了");system("color 89");
player.health=player.max_health;
}
}
break;
case 3:
if(money<150){
printf("钱不够!");system("color 89");
}
else{
if(player.health+100=100&&cao=150&&jijiubao=250&&baiyao=400&&superbaiyao=150){
jingyancao++;
money=money-150;
printf ("经验草+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
case 6:
if(money>=300){
jingyanbao++;
money=money-300;
printf ("经验包+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
case 7:
if(money>=500){
jingyanshi++;
money=money-500;
printf ("经验石+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
}
case 0:
printf("金币:%d
",money);system("color 89");
printf("再见,欢迎下次再来!
");system("color 89");
break;
}
if(mai==2){
printf("药品商人:去去去,老子没时间陪你聊。
");system("color 89");
}
}
}
else if(place_sign==place.hotel)
printf("“老板娘!我...”
“我忙着呢,没空理你~”
");
else printf("这里好像没人可以聊天
");system("color 89");
break;
case 4:
DisplayState();
break; //显示状态
case 5: //装备
printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,粗制石剑:%d个 4,碧血战锤:%d个 5,蜘蛛毒剑:%d个 6,尚方宝剑:%d个 7,雷霆之刃:%d个
",gong1n,gong2n,gong7n,gong3n,gong6n,gong4n,gong5n);system("color 89");
printf("防御装备: 8,布衣:%d个 9,铁甲:%d个 10,战斗马甲:%d个 11,重甲:%d个 12,石铠甲:%d个 13,传说圣甲:%d个 14,万龙甲:%d个		0,返回
",fang1n,fang2n,fang7n,fang3n,fang6n,fang4n,fang5n);system("color 89");
printf("选择要装备的武器或防具:
");system("color 89");
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(gong1n>=1){
printf("拿起了匕首
");system("color 89");
gong=gong1;
strcpy(gongname,"匕首");system("color 89");
}
else printf("你没有匕首可以装备
");system("color 89");
break;
case 2:
if(gong2n>=1){
printf("拿起了西洋剑
");system("color 89");
gong=gong2;
strcpy(gongname,"西洋剑");system("color 89");
}
else printf("你没有西洋剑可以装备
");system("color 89");
break;
case 3:
if(gong7n>=1){
printf("拿起了粗制石剑
");
gong=gong7;
strcpy(gongname,"粗制石剑");
}
else printf("你没有粗制石剑可以装备
");
break;
case 4:
if(gong3n>=1){
printf("拿起了碧血战锤
");
gong=gong3;
strcpy(gongname,"碧血战锤");
}
else printf("你没有碧血战锤可以装备
");
break;
case 5:
if(gong6n>=1){
printf("拿起了蜘蛛毒剑
");
gong=gong6;
strcpy(gongname,"蜘蛛毒剑");
}
else printf("你没有蜘蛛毒剑可以装备
");
break;
case 6:
if(gong4n>=1){
printf("拿起了尚方宝剑
");
gong=gong4;
strcpy(gongname,"尚方宝剑");
}
else printf("你没有尚方宝剑可以装备
");
break;
case 7:
if(gong5n>=1){
printf("拿起了雷霆之刃
");
gong=gong5;
strcpy(gongname,"雷霆之刃");
}
else printf("你没有雷霆之刃可以装备
");
break;
case 8:
if(fang1n>=1){
printf("穿上了布衣
");
fang=fang1;
strcpy(fangname,"布衣");
}
else printf("你没有布衣可以装备
");
break;
case 9:
if(fang2n>=1){
printf("穿上了铁甲
");
fang=fang2;
strcpy(fangname,"铁甲");
}
else printf("你没有铁甲可以装备
");
break;
case 10:
if(fang7n>=1){
printf("穿上了战斗马甲
");
fang=fang7;
strcpy(fangname,"战斗马甲");
}
else printf("你没有战斗马甲可以装备
");
break;
case 11:
if(fang3n>=1){
printf("穿上了重甲
");
fang=fang3;
strcpy(fangname,"重甲");
}
else printf("你没有重甲可以装备
");
break;
case 12:
if(fang6n>=1){
printf("穿上了石铠甲
");
fang=fang6;
strcpy(fangname,"石凯甲");
}
else printf("你没有石凯甲可以装备
");
break;
case 13:
if(fang4n>=1){
printf("穿上了传说圣甲
");
fang=fang4;
strcpy(fangname,"传说圣甲");
}
else printf("你没有传说圣甲可以装备
");
break;
case 14:
if(fang5n>=1){
printf("穿上了万龙甲
");
fang=fang5;
strcpy(fangname,"万龙甲");
}
else printf("你没有万龙甲可以装备
");
break; 
case 0:
printf("未更换装备
");
break;
default:
printf("change error!");
}
break;
case 6:
printf(" 您好,欢迎您玩苍穹世界(斗破苍穹)。为了给您更好的游戏体验,zty时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty ”(不包括双引号)。由于2.10.1版本的buy,我们在2.10.1的基础上进行修改,已修复该buy。并且修改了怪物的各项数值,做了一些平衡性调整,希望大家喜欢。在这里要感谢吴昊同学,他给了我们许多宝贵的建议,谢谢。
");system("color 89");
break;
case 0:
printf("确定退出游戏?(Y/N)
");system("color 89");
getchar();
proof=getchar();
if(proof=='y'||proof=='Y'){
printf("按回车退出");system("color 89");
getchar();
return;
}
else if(proof=='n'||proof=='N')printf("继续游戏!
");
else printf("继续!
");
break;
default:
printf("输入错误!
");
break;
case 7:
int mi;
cout<>mi;
if(mi%20120913==0){
cout<>> "<>htsr;
if(htsr==1){
cout<<"成功获得效果 *金币加9999
";
money+=999999;
}
if(htsr==2){
cout<<"成功获得效果 *血量加9999
";
player.health+=9999;
}
if(htsr==3){
cout<<"成功获得效果 *血量上限加9999
";
player.max_health+=9999;
}
if(htsr==4){
cout<<"成功获得效果 *攻击加9999
";
player.attack+=9999;
}
if(htsr==5){
cout<<"成功获得效果 *防御加9999
";
player.defense+=9999;
}
if(htsr%211==0){
cout<<"成功退出
";
continue;
}
}
else{
cout<<"输入错误!请检查!"<<endl;
continue;
}
break;
}
}
}
void DisplayState()
{
printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d 
",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
printf("武器: %s 防具: %s 
",gongname,fangname);
printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d 
",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
}
void BattleAct()
{
while(1)
{
puts("=============================================================================");
printf("要怎么办?
1,攻击 2,物品 3,查看状态 4,逃跑
");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
s=SuiJi();
printf("%s攻击! %sHP减少%d
",player.name,guai.name,player.attack+s+gong-guai.defense/3);
guai.health-=player.attack+s+gong-guai.defense/3;
if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
else continue;
case 2:
ChooseWupin();
break; //选择物品,可以使用,战斗中允许使用攻击性物品
case 3:
DisplayState();
break; //显示状态
case 4:
s=SuiJi();
if(s<4) //40%的概率可以逃跑
{
printf("%s逃跑了~
",player.name);
battle=0;
return;
}
else printf("%s逃跑失败!
",player.name);
break;
default:
printf("输入错误,重新输入!
");
}
}
}
void printf(char *p)
{
while(1)
{
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(100);
}
} 

2.10.3

#include
#include
#include
#include
#include //suiji
#include //SLEEP函数
using namespace std;
struct Player //玩家结构体,并初始化player
{
char name[21];
int attack;
int defense;
int health;
long int max_health;
int level;
int exp;
int range_exp;
long int max_exp;
} player= {"勇者",100,80,200,200,1,0,0,100};
struct Enemy //怪的结构体,并初始化各种怪
{
char name[20];
char wupin[20];
int attack;
int defense;
int health;
int money;
long int exp;
int wupin_sign;
int wupinpro;
int double_attack;
int miss;
}
//怪,拿格伦石人举例 
// 怪变量  怪名     掉落的装备 攻   防  血  金币 经验 掉落装备编号 掉落概率 后面这俩不能改 
//  gl= {"格伦石人","石铠甲",  30, 150,1000,500, 250,      11,       7,           1,0},
gl= {"格伦石人","石铠甲",30,150,1000,500,250,11,7,1,0},
zhizhu= {"洞穴蜘蛛","蜘蛛毒剑",140,20,250,400,200,12,5,1,0},
ymr= {"野蛮人","粗制石剑",20,20,150,100,50,13,5,1,0},
nz= {"牛仔","战斗马甲",80,20,250,500,250,14,10,1,0},
strongman= {"森林巨人","传说圣甲",50,50,580,200,100,1,5,1,0},
witch= {"兽人","重甲",35,55,250,50,50,2,4,1,1},
xiyi= {"森林蜥蜴","铁甲",20,25,80,30,35,3,8,2,2},
big_strongman= {"熔岩巨龙","巨龙晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
lion= {"皇家士兵","尚方宝剑",100,30,380,200,100,5,5,1,0},
horse= {"独眼巨人","碧血战锤",50,22,360,50,50,6,5,1,1},
bee= {"草原剑客","西洋剑",27,11,60,30,35,7,5,2,2},
shitu= {"凋零女巫","凋零之心",1400,500,15000,10000,5000,10,10,1,0},
dljs= {"凋零巨兽","凋零之心",1200,700,20000,10000,5000,10,7,1,0},
pika= {"皮卡超人","\0",300,40*8,1000,2000,1000,0,0,1,0},
dapika= {"雷霆皮卡","雷霆之刃",350,40*10,1500,3000,2000,8,6,6,0},
cl= {"中华长龙","\0",450,50*10,2000,3500,2500,0,0,1,0},
jl= {"东方金龙","万龙甲",500,40*20,5000,8000,4500,9,6,6,1},
gst={"凋零共生体","\0",1800,65*10,15000,0,10000,0,0,1,0},
dlkl= {"凋零骷髅","\0",3000,30*10,12000,0,10000,0,0,1,0},
dlfb= {".+*凋零风暴*+.","\0",9000,1500,49000,0,500000,0,0,1,0},
guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
struct Place
{
int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3,te1,te2,te3,te4;
} place= {1,2,3,4,5,6,7,8,9,10,11,12};
int max_exp=0;
int htsr;
int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=10;
int cao=3,jijiubao=3,baiyao=3,superbaiyao=3,miansi=1,boom=3,dubiao=2,atom_boom=1;
int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0,fang5=400,fang5n=0,fang6=150,fang6n=0,fang7=60,fang7n=0;
int gong=0,gong1=10,gong1n=0,gong2=20,gong2n=0,gong3=45,gong3n=0,gong4=100,gong4n=0,gong5=300,gong5n=0,gong6=150,gong6n=0,gong7=35,gong7n=0;
int jingyancao=0,jingyanbao=0,jingyanshi=0,htmmcs=5;
int diaolingxin=0; 
char gongname[20]="无",fangname[20]="无";
char proof;
void AddWupin(int);
int AttackResult();
void BattleAct();  //      ____
void ChooseWupin();  //   /___/|
void DisplayState();  //  |   |/
void OrdinaryAct();     //▔▔
int SuiJi();
int SuiJi100();
void WhetherLevelUp();
void SlowDisplay(char *);
int main()
{
MessageBox (NULL, "欢迎来到斗破苍穹 2.10.3 正式版 !", "斗破苍穹 2.10.3 游戏开始提示", MB_OK);
int i=0,j=0,k=0;
char player_name[21];
Sleep(1000);
printf("                            _________________________________                    ");system("color 89");
printf("                          /________________________________/|                    ");system("color 89");
printf("                _.+=*^--{|欢迎来到 [斗破苍穹] 2.10.3 正式版|}--^*=+.              ");system("color 89");
printf("                          ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔                      
");system("color 89");
//如果想使用外挂,名字请输入:“zty ”。
Sleep(1000);
printf("这里是斗破苍穹(苍穹世界)! 契晋赫苟国的漓嘉茜公主被神秘人绑架了!
伟大的勇者啊~拿起你的武器,营救公主!
输入你的名字: (20个字符)
");system("color 89");
scanf("%s",player_name);
strncpy(player.name,player_name,20);
if(strcmp(player.name,"zty")==0){
printf("
封印多年的zty族血统啊!你终于觉醒了!
zty,你成为了天选之人,请你救出公主吧!
");
player.attack=99999;
player.defense=99999;
player.health=999999;
player.max_health=999999;
}
getchar();
OrdinaryAct();
return 0;
}
int SuiJi()
{
srand((unsigned)time(NULL));
return rand()%10;
}
int SuiJi100()
{
srand((unsigned)time(NULL));
return rand()%100;
}
void ChooseWupin() //选择物品 并使用
{
printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨龙晶石%d个 12,免死金牌%d个 13,凋零之心%d个 0,返回
",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm,miansi,diaolingxin);system("color 8A");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(cao>0)
{
printf("使用止血草,HP增加120
");system("color 8A");
cao--;
if(player.health+120>player.max_health)player.health=player.max_health;
else player.health+=120;
}
else printf("没有止血草了
");system("color 8A");
break;
case 2:
if(jijiubao>0)
{
printf("使用急救包,HP增加180
");system("color 8A");
jijiubao--;
if(player.health+180>player.max_health)player.health=player.max_health;
else player.health+=180;
}
else printf("没有急救包了
");system("color 8A");
break;
case 3:
if(baiyao>0)
{
printf("使用云南白药,HP增加240
z
");system("color 8A");
baiyao--;
if(player.health+240>player.max_health)player.health=player.max_health;
else player.health+=240;
}
else printf("没有云南白药了
");system("color 8A");
break;
case 4:
if(superbaiyao>0)
{
printf("使用超级云南白药,HP增加400
");system("color 8A");
superbaiyao--;
if(player.health+400>player.max_health)player.health=player.max_health;
else player.health+=400;
}
else printf("没有超级云南白药了
");system("color 8A");
break;
case 5:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(boom>0)
{
printf("使用手雷,敌人HP减少100
");system("color 84");
boom--;
guai.health-=100;
AttackResult();
}
}
else printf("非战斗状态,不能使用手雷!
");system("color 84");
break;
case 6:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(dubiao>0)
{
printf("使用毒标,敌人HP减少200
");system("color 84");
dubiao--;
guai.health-=200;
AttackResult();
}
}
else printf("非战斗状态,不能使用毒标!
");system("color 84");
break;
case 7:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(atom_boom>0)
{
printf("使用手抛式原子弹,敌人HP减少1500
");system("color 84");
atom_boom--;
guai.health-=1500;
AttackResult();
}
}
else printf("非战斗状态,不能使用手抛式原子弹!
");system("color 84");
break;
case 8:
if(jingyancao>0 && player.level<200)
{
printf("使用经验草,等级增加3级
");system("color 8E");
jingyancao--;
player.max_health=player.max_health+60; 
player.attack+=9;
player.defense+=6;
player.level+=3;
player.health=player.max_health;
printf("等级:%d
",player.level);system("color 8E");
}
else    if(jingyancao0 && player.level197&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
jingyanbao--;
player.max_health=player.max_health+sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用经验包,等级增加%d级",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用经验包,等级增加5级
");system("color 8E");
jingyanbao--;
player.max_health=player.max_health+100; 
player.attack+=15;
player.defense+=10;
player.level+=5;
player.health=player.max_health;
printf("等级:%d
",player.level);system("color 8E");
}
}
else if(jingyanbao0 && player.level192&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
player.max_health+=sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用经验石,等级增加%d级
",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用经验石,等级增加10级
");system("color 8E");
jingyanshi--;
player.max_health=player.max_health+200; 
player.attack+=30;
player.defense+=20;
player.level+=10;
player.health=player.max_health;
}
}
else if(jingyanshi0 && player.level482&&player.level<500)
{
int sheng;
sheng=500-player.level;
player.level+=sheng;
player.max_health=player.max_health+sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用巨龙晶石,等级增加%d级",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用巨龙晶石,等级增加20级
");system("color 8E");
strongman_arm--;
player.max_health=player.max_health+400; 
player.attack+=60;
player.defense+=40;
player.health+=999999;
player.level+=20;
printf("等级:%d
",player.level);system("color 8E");
}
}
else if(strongman_arm0)
{
printf("使用免死金牌,HP满
");system("color 8b");
miansi--;
if(player.health+999999>player.max_health)player.health=player.max_health;
else player.health+=999999;
}else printf("没有免死金牌了
"); system("color 8b");break;
break;
case 13:
if(diaolingxin>0)
{
printf("使用凋零之心
HP+100  攻击+100
");system("color 8b");
diaolingxin--;
player.health+=100;
player.attack+=100; 
}else printf("没有凋零之心了
"); system("color 8b");break;
case 0:
break;
default:
printf("ChooseWupin error!
");
}
}
int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
{
if(guai.health<=0)
{
battle=0;
printf("战斗胜利!获得金币%d,经验%d
",guai.money,guai.exp);system("color 8C");
player.exp+=guai.exp;
player.range_exp+=guai.exp;
money+=guai.money;
s=SuiJi();
if(s<guai.wupinpro)
{
printf("从敌人尸骸中发现");system("color 8C");
printf("%s
",guai.wupin);
AddWupin(guai.wupin_sign);
}
WhetherLevelUp();
if(strcmp(guai.name,"*凋零巨兽*")==0)
{
printf("你把公主救了出来
你从公主口中得知了一个更大的阴谋,你可以进入凋零世界
");system("color 8C");
}
return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
}
else
{
int s=SuiJi();
if((guai.attack+s-player.defense/3)<0)
{
player.health-=1;
printf("%s反击,你的HP减少了 1
",guai.name);system("color 8C");
}
else
{
player.health-=guai.attack+s-player.defense/3;
printf("%s反击,你的HP减少了%d
",guai.name,guai.attack+s-player.defense/3);system("color 8C");
}
if(player.health<0)
{
battle=0;
printf("%s战死!金币掉落%d
",player.name,player.level*500);system("color CC");
money-=player.level*500;
player.health=player.max_health/5;
OrdinaryAct();//
return 1;
}
}
return 0;
}
void AddWupin(int wupin_sign)
{
switch(wupin_sign)
{
case 1:
fang4n++;
break;
case 2:
fang3n++;
break;
case 3:
fang2n++;
break;
case 4:
strongman_arm++;
break;
case 5:
gong4n++;
break;
case 6:
gong3n++;
break;
case 7:
gong2n++;
break;
case 8:
gong5n++;
break;
case 9:
fang5n++;
break;
case 10:
diaolingxin++;
break;
case 11:
fang6n++;
break;
case 12:
gong6n++;
break;
case 13:
gong7n++;
break;
case 14:
fang7n++;
break;
default:
printf("AddWupin error
");
}
}
void WhetherLevelUp()
{
int i=0,j=0;
int l1=player.range_exp/150;
int l2=player.range_exp/375;
int l3=player.range_exp/750;
if(player.level0) //15级以下,经验足够 都满足则升级
{
if(l1==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100;
}
else
{
printf("好厉害!连升%d级!",l1);system("color 8E");
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l1,2*l1,20*l1);system("color 8E");
player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
player.attack+=3*l1;
player.defense+=2*l1;
player.max_health+=20*l1;
player.health=player.max_health;
player.level+=l1;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100*l1;
}
}
else if(player.level0)
{
if(l2==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300;
}
else
{
printf("好厉害!连升%d级!",l1);system("color 8E");
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l2,2*l2,20*l2);system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l2;
player.defense+=2*l2;
player.max_health+=20*l2;
player.health=player.max_health;
player.level+=l2;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300*l2;
}
}
else if(l3>0)
{
if(l3==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600;
}
else
{
printf("好厉害!连升%d级!",l1);
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l3,2*l3,20*l3);system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l3;
player.defense+=2*l3;
player.max_health+=20*l3;
player.health=player.max_health;
player.level+=l3;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600*l3;
}
}
}
void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
{
while(1)
{
// \(1000);
// system("cls");
puts("=============================================================================");system("color 89");
printf("要做什么?
1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 7,打开后台 0,退出游戏
");system("color 89");
puts("=============================================================================");system("color 89");
switch(scanf("%d",&choose_number),choose_number)
{
case 1: //显示移动菜单
printf("要去哪里?
");system("color 89");
printf("1,小郑子酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野
");system("color 89");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
place_sign=place.bar; //记录目前位置-酒吧
// OrdinaryAct();
break;
case 2:
place_sign=place.hotel; //进入旅店
printf("金币:%d",money);system("color 89");
printf("要开房吗? 200个金币 1,是 0,否
");system("color 89");
choose_number=1;
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(money-200=300)
{
gong1n++;
money=money-300;
printf ("匕首+1
");system("color 89");
printf("匕首:%d个
",gong1n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
case 2:
if(money>=500)
{
gong2n++;
money=money-500;
printf ("西洋剑+1
");system("color 89");
printf("西洋剑:%d个
",gong2n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
case 3:
if(money>=1000)
{
gong3n++;
money=money-1000;
printf ("碧血战锤+1
");system("color 89");
printf("碧血战锤:%d个
",gong3n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
default:
printf("对不起,我们只会打造以上武器。");system("color 89");
break;
}
break;
case 2:
int fang;
printf("请问您要购买什么防具?
1,布衣¥300 2,铁甲¥500 3,重甲¥1000
");system("color 89");
scanf("%d",&fang);
switch(fang)
{
case 1:
if(money>=300)
{
fang1n++;
money=money-300;
printf ("布衣+1
");system("color 89");
printf("布衣:%d个
",fang1n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
}
break;
case 2:
if(money>=500)
{
fang2n++;
money=money-500;
printf ("铁甲+1
");system("color 89");
printf("铁甲:%d个
",fang2n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d",money);system("color 89");
}
break;
case 3:
if(money>=1000)
{
fang3n++;
money=money-1000;
printf ("重甲+1
");system("color 89");
printf("重甲:%d个
",fang3n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
}
default:
printf("对不起,我们只会打造以上防具。");system("color 89");
break;
}
printf("金币:%d
",money);system("color 89");
break;
case 3:
printf("请问您要购买什么一次性伤害武器?
1,手雷 2,毒镖 3,手抛式原子弹
");system("color 89");
int yi;
scanf("%d",&yi);
switch(yi)
{
case 1:
if(money>=300 && boom=600 && dubiao=1000 && atom_boom=shu)
{
gong1n=gong1n-shu;
money=money+shu*240;
printf("匕首:%d
",gong1n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("装备数不够,无法出售!
");system("color 89");
break;
}
break;
case 2:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong2n>=shu)
{
gong2n=gong2n-shu;
money=money+shu*400;
printf("西洋剑:%d
",gong2n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 3:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong7n>=shu)
{
gong7n=gong7n-shu;
money=money+shu*800;
printf("粗制石剑:%d
",gong7n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 4:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong3n>=shu)
{
gong3n=gong3n-shu;
money=money+shu*800;
printf("碧血战锤:%d
",gong3n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 5:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong6n>=shu)
{
gong6n=gong6n-shu;
money=money+shu*1000;
printf("蜘蛛毒剑:%d
",gong6n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 6:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong4n>=shu)
{
gong4n=gong4n-shu;
money=money+shu*1500;
printf("尚方宝剑:%d
",gong4n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 7:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong5n>=shu)
{
gong5n=gong5n-shu;
money=money+shu*3000;
printf("皮卡大剑:%d
",gong5n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 8:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang1n>=shu)
{
fang1n=fang1n-shu;
money=money+shu*240;
printf("布衣:%d
",fang1n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 9:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang2n>=shu)
{
fang2n=fang2n-shu;
money=money+shu*500;
printf("铁甲:%d
",fang2n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 10:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang7n>=shu)
{
fang7n=fang7n-shu;
money=money+shu*1000;
printf("战斗马甲:%d
",fang7n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 11:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang3n>=shu)
{
fang3n=fang3n-shu;
money=money+shu*800;
printf("重甲:%d
",fang3n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
break;
case 12:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang6n>=shu)
{
fang6n=fang6n-shu;
money=money+shu*2000;
printf("石凯甲:%d
",fang6n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 13:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang4n>=shu)
{
fang4n=fang4n-shu;
money=money+shu*1500;
printf("传说圣甲:%d
",fang4n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 14:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang5n>=shu)
{
fang5n=fang5n-shu;
money=money+shu*3000;
printf("万龙甲:%d
",fang5n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 15:
printf("请问您要出售几颗?");
scanf("%d",&shu);
if(strongman_arm>=shu)
{
strongman_arm=strongman_arm-shu;
money=money+shu*4000;
printf("巨龙晶石:%d
",strongman_arm);
printf("金币:%d
",money);
}
else
{
printf("晶石数不够,无法出售!
");
break;
}
break;
case 0:
break;
break;
default:
printf("没有该装备,无法出售!
");
break;
}
break;
case 5:
int yewai;
while(1)
{
puts("=============================================================================");
printf("要去哪冒险呢?");
printf("
1,神秘沼泽 危险程度:★
2,星耀草原 危险程度:★★★
3,诡异森林 危险程度:★★★
4,荒漠矿场 危险程度:★★★★
5,炽热炎洞 危险程度:★★★★★
6,皮卡营地 危险程度★★★★★★
7,花朵宫殿 危险程度:★★★★★★
8,五千龙穴 危险程度:★★★★★★★
9,凋零宇宙 危险程度:★★★★★★★★
0,离开
");system("color 8c");
puts("=============================================================================");
scanf("%d",&yewai);
switch(yewai)
{
case 1:
place_sign=place.forest1;
s=SuiJi();
if(s<7)
{
battle=1;
guai=xiyi;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=witch;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
//不用调用OAct函数,会自动执行OAct函数;
}
break;
case 3:
place_sign=place.forest2;
s=SuiJi();
if(s<4)
{
battle=1;
guai=witch;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<7)
{
battle=1;
guai=strongman;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}
else
{
battle=1;
guai=zhizhu;
printf("可怕的%s爬了过来!
",guai.name);
BattleAct();
}
break;
case 5:
place_sign=place.forest3;
s=SuiJi();
if(s<=3){
battle=1;
guai=strongman;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<5){
battle=1;
guai=big_strongman;
printf("炽热的%s拍打着翅膀扑了过来!
",guai.name);
BattleAct();
} else if(s<8){
battle=1;
guai=gl;
printf("全身长满矿石的%s扑了过来!
",guai.name);
BattleAct();
}else{
battle=1;
guai=zhizhu;
printf("可怕的%s扑爬了过来!
",guai.name);
BattleAct();
} 
break;
case 2:
place_sign=place.grass1;
s=SuiJi();
if(s<=3){
battle=1;
guai=bee;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<5){
battle=1;
guai=horse;
printf("%s扑了过来!
",guai.name);
BattleAct();
}else if(s<8){
battle=1;
guai=ymr;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}else{
battle=1;
guai=nz;
printf("帅气但令人讨厌的%s向你开枪!
",guai.name);
BattleAct();
}
break;
case 4:
place_sign=place.grass2;
s=SuiJi();
if(s<5){
battle=1;
guai=horse;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<7){
battle=1;
guai=lion;
printf("%s举着尚方宝剑拦住了你!
",guai.name);
BattleAct();}
else{
battle=1;
guai=gl;
printf("全身长满矿石的%s扑了过来!
",guai.name);
BattleAct();
}
break;
case 6:
s=SuiJi();
if(s<7){
battle=1; 
guai=pika;
printf("你感到了强烈的电流涌入全身,%s走了过来!
",guai.name);
BattleAct();
}
else if(s<9){
battle=1;
guai=dapika;
printf("天空一声巨响,三道闪电劈到%s的身上,%s手持雷霆之刃冲了过来!
",guai.name,guai.name);
BattleAct();
}
else{
printf("这里安全
");
}
break;
case 8:
s=SuiJi();
if(s<=3)
{
battle=1; 
guai=cl;
printf("一条长龙横卧洞内,你定睛一看,是%s扑了过来!
",guai.name);
BattleAct();
}
else if(s=4)
{
battle=1; 
guai=big_strongman;
printf("炽热的%s拍打着翅膀扑了过来!
",guai.name);
BattleAct();
}
else {
battle=1;
guai=jl;
printf("一条金光闪闪的长龙盘旋空中,你定睛一看,是传说中的%s扑了过来!
",guai.name);
BattleAct();
}
break;
case 7:
place_sign=place.grass3;
s=SuiJi();
if(s<5)
{
battle=1;
guai=lion;
printf("%s举着尚方宝剑拦住了你!
",guai.name);
BattleAct();
}
else if(s=1)
{
printf("神秘老人:
哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨龙晶石我要了,公主你也别想带走!
");
guai=shitu;
printf("瞬间,你被一团黑雾笼罩,你被拉入了凋零幻境,%s向你发起攻击!
",guai.name);
BattleAct();
}
else printf("神秘老人:
年轻人,你好啊.如果你有巨龙晶石,我可以告诉你公主的下落哦~
");
}
else
{
battle=1;
guai=nz;
printf("帅气但令人讨厌的%s向你开枪!
",guai.name);
BattleAct();
}
break;
case 9:
s=SuiJi();
if(diaolingxin!=0){
if(s==1)
{
battle=1; 
guai=dlfb;
printf("一个巨大的黑暗物体,周围环绕着大量的由破碎方块组成的黑色颗粒云环的%s向你发起攻击!
",guai.name);
BattleAct();
}
else if(s<=2 && s<=4)
{
battle=1; 
guai=dlkl;
printf("手持凋零剑的黑色凶恶%s扑了过来!
",guai.name);
BattleAct();
}
else if(s=7){
battle=1;
guai=gst;
printf("一个巨大的触手向你打来,你挡了下来%s扑了过来!
",guai.name);
BattleAct();
} else{
battle=1;
guai=dljs;
printf("一只巨大的猛兽%s冲了过来!
",guai.name);
BattleAct();
}
}if(diaolingxin==0){
cout<<"你没有凋零之心,需要击败凋零巨兽" <<endl;
}
break;
if(yewai!=0)
{
printf("该区域为未知区域,无法进入。
");system("color 89");
break;
}
}
if(yewai==0)
{
break;
printf("已离开荒野。");system("color 89");
}
}
}
break;
case 2:
ChooseWupin();
break; //显示道具,并可以使用.
case 3: //对话选项
if(place_sign==place.bar)
{
printf("要和谁说话?
1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人
"); system("color 89");//显示对话人物
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
printf("红发女郎:
吧台边那个Hunter好帅啊!(~脸红~)
听说他经常外出打猎,外面的路他应该很熟悉的!
");system("color 89");
break;
case 2:
if(fang1n<1&&gong1n<1)
{
printf("赏金猎人:
你要救公主啊!好胆量!
不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!
");system("color 89");
printf("%s心想:哇,这位大叔人真好啊!
)",player.name);
gong1n++;
fang1n++;
}
else printf("赏金猎人:
加油吧,年轻人!
不要被外面世界所吓倒!
");system("color 89");
break;
case 3:
printf("要喝点什么?
1,二锅头25金币 HP+20 2,伏特加80金币 HP+50 3,人头马面150金币 HP+100 0,返回
");system("color 89");
choose_number=1;
while(choose_number)
{
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(money<25){
printf("钱不够!");system("color 89");
}
else
{
if(player.health+20<=player.max_health){
printf("HP+20.");system("color 89");
money-=25;
player.health+=20;
}
else{
printf("HP满了");system("color 89");
player.health=player.max_health;
}
}
break;
case 2:
if(money<80){
printf("钱不够!");system("color 89");
}
else{
if(player.health+50<=player.max_health){
printf("HP+50.");system("color 89");
money-=80;
player.health+=50;
}
else{
printf("HP满了");system("color 89");
player.health=player.max_health;
}
}
break;
case 3:
if(money<150){
printf("钱不够!");system("color 89");
}
else{
if(player.health+100=100&&cao=150&&jijiubao=250&&baiyao=400&&superbaiyao=150){
jingyancao++;
money=money-150;
printf ("经验草+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
case 6:
if(money>=300){
jingyanbao++;
money=money-300;
printf ("经验包+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
case 7:
if(money>=500){
jingyanshi++;
money=money-500;
printf ("经验石+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
}
case 0:
printf("金币:%d
",money);system("color 89");
printf("再见,欢迎下次再来!
");system("color 89");
break;
}
if(mai==2){
printf("药品商人:去去去,老子没时间陪你聊。
");system("color 89");
}
}
}
else if(place_sign==place.hotel)
printf("“老板娘!我...”
“我忙着呢,没空理你~”
");
else printf("这里好像没人可以聊天
");system("color 89");
break;
case 4:
DisplayState();
break; //显示状态
case 5: //装备
printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,粗制石剑:%d个 4,碧血战锤:%d个 5,蜘蛛毒剑:%d个 6,尚方宝剑:%d个 7,雷霆之刃:%d个
",gong1n,gong2n,gong7n,gong3n,gong6n,gong4n,gong5n);system("color 89");
printf("防御装备: 8,布衣:%d个 9,铁甲:%d个 10,战斗马甲:%d个 11,重甲:%d个 12,石铠甲:%d个 13,传说圣甲:%d个 14,万龙甲:%d个		0,返回
",fang1n,fang2n,fang7n,fang3n,fang6n,fang4n,fang5n);system("color 89");
printf("选择要装备的武器或防具:
");system("color 89");
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(gong1n>=1){
printf("拿起了匕首
");system("color 89");
gong=gong1;
strcpy(gongname,"匕首");system("color 89");
}
else printf("你没有匕首可以装备
");system("color 89");
break;
case 2:
if(gong2n>=1){
printf("拿起了西洋剑
");system("color 89");
gong=gong2;
strcpy(gongname,"西洋剑");system("color 89");
}
else printf("你没有西洋剑可以装备
");system("color 89");
break;
case 3:
if(gong7n>=1){
printf("拿起了粗制石剑
");
gong=gong7;
strcpy(gongname,"粗制石剑");
}
else printf("你没有粗制石剑可以装备
");
break;
case 4:
if(gong3n>=1){
printf("拿起了碧血战锤
");
gong=gong3;
strcpy(gongname,"碧血战锤");
}
else printf("你没有碧血战锤可以装备
");
break;
case 5:
if(gong6n>=1){
printf("拿起了蜘蛛毒剑
");
gong=gong6;
strcpy(gongname,"蜘蛛毒剑");
}
else printf("你没有蜘蛛毒剑可以装备
");
break;
case 6:
if(gong4n>=1){
printf("拿起了尚方宝剑
");
gong=gong4;
strcpy(gongname,"尚方宝剑");
}
else printf("你没有尚方宝剑可以装备
");
break;
case 7:
if(gong5n>=1){
printf("拿起了雷霆之刃
");
gong=gong5;
strcpy(gongname,"雷霆之刃");
}
else printf("你没有雷霆之刃可以装备
");
break;
case 8:
if(fang1n>=1){
printf("穿上了布衣
");
fang=fang1;
strcpy(fangname,"布衣");
}
else printf("你没有布衣可以装备
");
break;
case 9:
if(fang2n>=1){
printf("穿上了铁甲
");
fang=fang2;
strcpy(fangname,"铁甲");
}
else printf("你没有铁甲可以装备
");
break;
case 10:
if(fang7n>=1){
printf("穿上了战斗马甲
");
fang=fang7;
strcpy(fangname,"战斗马甲");
}
else printf("你没有战斗马甲可以装备
");
break;
case 11:
if(fang3n>=1){
printf("穿上了重甲
");
fang=fang3;
strcpy(fangname,"重甲");
}
else printf("你没有重甲可以装备
");
break;
case 12:
if(fang6n>=1){
printf("穿上了石铠甲
");
fang=fang6;
strcpy(fangname,"石凯甲");
}
else printf("你没有石凯甲可以装备
");
break;
case 13:
if(fang4n>=1){
printf("穿上了传说圣甲
");
fang=fang4;
strcpy(fangname,"传说圣甲");
}
else printf("你没有传说圣甲可以装备
");
break;
case 14:
if(fang5n>=1){
printf("穿上了万龙甲
");
fang=fang5;
strcpy(fangname,"万龙甲");
}
else printf("你没有万龙甲可以装备
");
break; 
case 0:
printf("未更换装备
");
break;
default:
printf("change error!");
}
break;
case 6:
printf(" 您好,欢迎您玩苍穹世界(斗破苍穹)。为了给您更好的游戏体验,zty时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty ”(不包括双引号)。由于2.10.2版本巨龙晶石的buy,我们在2.10.2的基础上进行修改,已修复该buy。并且修改了巨龙晶石的升级上限,希望大家喜欢。在这里要感谢吴昊同学,他给了我们许多宝贵的建议,谢谢。
");system("color 89");
break;
case 0:
printf("确定退出游戏?(Y/N)
");system("color 89");
getchar();
proof=getchar();
if(proof=='y'||proof=='Y'){
printf("按回车退出");system("color 89");
getchar();
return;
}
else if(proof=='n'||proof=='N')printf("继续游戏!
");
else printf("继续!
");
break;
default:
printf("输入错误!
");
break;
case 7:
int mi;
cout<>mi;
if(mi%20120913==0){
cout<>> "<>htsr;
if(htsr==1){
cout<<"成功获得效果 *金币加9999
";
money+=999999;
}
if(htsr==2){
cout<<"成功获得效果 *血量加9999
";
player.health+=9999;
}
if(htsr==3){
cout<<"成功获得效果 *血量上限加9999
";
player.max_health+=9999;
}
if(htsr==4){
cout<<"成功获得效果 *攻击加9999
";
player.attack+=9999;
}
if(htsr==5){
cout<<"成功获得效果 *防御加9999
";
player.defense+=9999;
}
if(htsr%211==0){
cout<<"成功退出
";
continue;
}
}
else{
cout<<"输入错误!请检查!"<<endl;
continue;
}
break;
}
}
}
void DisplayState()
{
printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d 
",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
printf("武器: %s 防具: %s 
",gongname,fangname);
printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d 
",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
}
void BattleAct()
{
while(1)
{
puts("=============================================================================");
printf("要怎么办?
1,攻击 2,物品 3,查看状态 4,逃跑
");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
s=SuiJi();
printf("%s攻击! %sHP减少%d
",player.name,guai.name,player.attack+s+gong-guai.defense/3);
guai.health-=player.attack+s+gong-guai.defense/3;
if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
else continue;
case 2:
ChooseWupin();
break; //选择物品,可以使用,战斗中允许使用攻击性物品
case 3:
DisplayState();
break; //显示状态
case 4:
s=SuiJi();
if(s<4) //40%的概率可以逃跑
{
printf("%s逃跑了~
",player.name);
battle=0;
return;
}
else printf("%s逃跑失败!
",player.name);
break;
default:
printf("输入错误,重新输入!
");
}
}
}
void printf(char *p)
{
while(1)
{
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(100);
}
} 

2.10.4

#include
#include
#include
#include
#include //suiji
#include //SLEEP函数
using namespace std;
struct Player //玩家结构体,并初始化player
{
char name[21];
int attack;
int defense;
int health;
long int max_health;
int level;
int exp;
int range_exp;
long int max_exp;
} player= {"勇者",100,80,200,200,1,0,0,100};
struct Enemy //怪的结构体,并初始化各种怪
{
char name[20];
char wupin[20];
int attack;
int defense;
int health;
int money;
long int exp;
int wupin_sign;
int wupinpro;
int double_attack;
int miss;
}
//怪,拿格伦石人举例 
// 怪变量  怪名     掉落的装备 攻   防  血  金币 经验 掉落装备编号 掉落概率 后面这俩不能改 
//  gl= {"格伦石人","石铠甲",  30, 150,1000,500, 250,      11,       7,           1,0},
gl= {"格伦石人","石铠甲",30,150,1000,500,250,11,7,1,0},
zhizhu= {"洞穴蜘蛛","蜘蛛毒剑",140,20,250,400,200,12,5,1,0},
ymr= {"野蛮人","粗制石剑",20,20,150,100,50,13,5,1,0},
nz= {"牛仔","战斗马甲",80,20,250,500,250,14,10,1,0},
strongman= {"森林巨人","传说圣甲",50,50,580,200,100,1,5,1,0},
witch= {"兽人","重甲",35,55,250,50,50,2,4,1,1},
xiyi= {"森林蜥蜴","铁甲",20,25,80,30,35,3,8,2,2},
big_strongman= {"熔岩巨龙","巨龙晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
lion= {"皇家士兵","尚方宝剑",100,30,380,200,100,5,5,1,0},
horse= {"独眼巨人","碧血战锤",50,22,360,50,50,6,5,1,1},
bee= {"草原剑客","西洋剑",27,11,60,30,35,7,5,2,2},
shitu= {"凋零女巫","凋零之心",1400,500,15000,10000,5000,10,10,1,0},
dljs= {"凋零巨兽","凋零之心",1200,700,20000,10000,5000,10,7,1,0},
pika= {"皮卡超人","\0",300,40*8,1000,2000,1000,0,0,1,0},
dapika= {"雷霆皮卡","雷霆之刃",350,40*10,1500,3000,2000,8,6,6,0},
cl= {"中华长龙","\0",450,50*10,2000,3500,2500,0,0,1,0},
jl= {"东方金龙","万龙甲",500,40*20,5000,8000,4500,9,6,6,1},
gst={"凋零共生体","\0",1800,65*10,15000,0,10000,0,0,1,0},
dlkl= {"凋零骷髅","\0",3000,30*10,12000,0,10000,0,0,1,0},
dlfb= {".+*凋零风暴*+.","\0",9000,1500,49000,0,500000,0,0,1,0},
guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
struct Place
{
int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3,te1,te2,te3,te4;
} place= {1,2,3,4,5,6,7,8,9,10,11,12};
int max_exp=0;
int htsr;
int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=10;
int cao=3,jijiubao=3,baiyao=3,superbaiyao=3,miansi=1,boom=3,dubiao=2,atom_boom=1;
int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0,fang5=400,fang5n=0,fang6=150,fang6n=0,fang7=60,fang7n=0;
int gong=0,gong1=10,gong1n=0,gong2=20,gong2n=0,gong3=45,gong3n=0,gong4=100,gong4n=0,gong5=300,gong5n=0,gong6=150,gong6n=0,gong7=35,gong7n=0;
int jingyancao=0,jingyanbao=0,jingyanshi=0,htmmcs=5;
int diaolingxin=0; 
char gongname[20]="无",fangname[20]="无";
char proof;
void AddWupin(int);
int AttackResult();
void BattleAct();  //      ____
void ChooseWupin();  //   /___/|
void DisplayState();  //  |   |/
void OrdinaryAct();     //▔▔
int SuiJi();
int SuiJi100();
void WhetherLevelUp();
void SlowDisplay(char *);
int main()
{
MessageBox (NULL, "欢迎来到斗破苍穹 2.10.3 正式版 !", "斗破苍穹 2.10.3 游戏开始提示", MB_OK);
int i=0,j=0,k=0;
char player_name[21];
Sleep(1000);
printf("                            _________________________________                    ");system("color 89");
printf("                          /________________________________/|                    ");system("color 89");
printf("                _.+=*^--{|欢迎来到 [斗破苍穹] 2.10.3 正式版|}--^*=+.              ");system("color 89");
printf("                          ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔                      
");system("color 89");
//如果想使用外挂,名字请输入:“zty ”。
Sleep(1000);
printf("这里是斗破苍穹(苍穹世界)! 契晋赫苟国的漓嘉茜公主被神秘人绑架了!
伟大的勇者啊~拿起你的武器,营救公主!
输入你的名字: (20个字符)
");system("color 89");
scanf("%s",player_name);
strncpy(player.name,player_name,20);
if(strcmp(player.name,"zty")==0){
printf("
封印多年的zty族血统啊!你终于觉醒了!
zty,你成为了天选之人,请你救出公主吧!
");
player.attack=99999;
player.defense=99999;
player.health=999999;
player.max_health=999999;
}
getchar();
OrdinaryAct();
return 0;
}
int SuiJi()
{
srand((unsigned)time(NULL));
return rand()%10;
}
int SuiJi100()
{
srand((unsigned)time(NULL));
return rand()%100;
}
void ChooseWupin() //选择物品 并使用
{
printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨龙晶石%d个 12,免死金牌%d个 13,凋零之心%d个 0,返回
",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm,miansi,diaolingxin);system("color 8A");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(cao>0)
{
printf("使用止血草,HP增加120
");system("color 8A");
cao--;
if(player.health+120>player.max_health)player.health=player.max_health;
else player.health+=120;
}
else printf("没有止血草了
");system("color 8A");
break;
case 2:
if(jijiubao>0)
{
printf("使用急救包,HP增加180
");system("color 8A");
jijiubao--;
if(player.health+180>player.max_health)player.health=player.max_health;
else player.health+=180;
}
else printf("没有急救包了
");system("color 8A");
break;
case 3:
if(baiyao>0)
{
printf("使用云南白药,HP增加240
z
");system("color 8A");
baiyao--;
if(player.health+240>player.max_health)player.health=player.max_health;
else player.health+=240;
}
else printf("没有云南白药了
");system("color 8A");
break;
case 4:
if(superbaiyao>0)
{
printf("使用超级云南白药,HP增加400
");system("color 8A");
superbaiyao--;
if(player.health+400>player.max_health)player.health=player.max_health;
else player.health+=400;
}
else printf("没有超级云南白药了
");system("color 8A");
break;
case 5:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(boom>0)
{
printf("使用手雷,敌人HP减少100
");system("color 84");
boom--;
guai.health-=100;
AttackResult();
}
}
else printf("非战斗状态,不能使用手雷!
");system("color 84");
break;
case 6:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(dubiao>0)
{
printf("使用毒标,敌人HP减少200
");system("color 84");
dubiao--;
guai.health-=200;
AttackResult();
}
}
else printf("非战斗状态,不能使用毒标!
");system("color 84");
break;
case 7:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(atom_boom>0)
{
printf("使用手抛式原子弹,敌人HP减少1500
");system("color 84");
atom_boom--;
guai.health-=1500;
AttackResult();
}
}
else printf("非战斗状态,不能使用手抛式原子弹!
");system("color 84");
break;
case 8:
if(jingyancao>0 && player.level<200)
{
printf("使用经验草,等级增加3级
");system("color 8E");
jingyancao--;
player.max_health=player.max_health+60; 
player.attack+=9;
player.defense+=6;
player.level+=3;
player.health=player.max_health;
printf("等级:%d
",player.level);system("color 8E");
}
else    if(jingyancao0 && player.level197&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
jingyanbao--;
player.max_health=player.max_health+sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用经验包,等级增加%d级",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用经验包,等级增加5级
");system("color 8E");
jingyanbao--;
player.max_health=player.max_health+100; 
player.attack+=15;
player.defense+=10;
player.level+=5;
player.health=player.max_health;
printf("等级:%d
",player.level);system("color 8E");
}
}
else if(jingyanbao0 && player.level192&&player.level<200)
{
int sheng;
sheng=100-player.level;
player.level+=sheng;
player.max_health+=sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用经验石,等级增加%d级
",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用经验石,等级增加10级
");system("color 8E");
jingyanshi--;
player.max_health=player.max_health+200; 
player.attack+=30;
player.defense+=20;
player.level+=10;
player.health=player.max_health;
}
}
else if(jingyanshi0 && player.level482&&player.level<500)
{
int sheng;
sheng=500-player.level;
player.level+=sheng;
player.max_health=player.max_health+sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用巨龙晶石,等级增加%d级",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用巨龙晶石,等级增加20级
");system("color 8E");
strongman_arm--;
player.max_health=player.max_health+400; 
player.attack+=60;
player.defense+=40;
player.health+=999999;
player.level+=20;
printf("等级:%d
",player.level);system("color 8E");
}
}
else if(strongman_arm0)
{
printf("使用免死金牌,HP满
");system("color 8b");
miansi--;
if(player.health+999999>player.max_health)player.health=player.max_health;
else player.health+=999999;
}else printf("没有免死金牌了
"); system("color 8b");break;
break;
case 13:
if(diaolingxin>0)
{
printf("使用凋零之心
HP+100  攻击+100
");system("color 8b");
diaolingxin--;
player.health+=100;
player.attack+=100; 
}else printf("没有凋零之心了
"); system("color 8b");break;
case 0:
break;
default:
printf("ChooseWupin error!
");
}
}
int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
{
if(guai.health<=0)
{
battle=0;
printf("战斗胜利!获得金币%d,经验%d
",guai.money,guai.exp);system("color 8C");
player.exp+=guai.exp;
player.range_exp+=guai.exp;
money+=guai.money;
s=SuiJi();
if(s<guai.wupinpro)
{
printf("从敌人尸骸中发现");system("color 8C");
printf("%s
",guai.wupin);
AddWupin(guai.wupin_sign);
}
WhetherLevelUp();
if(strcmp(guai.name,"*凋零巨兽*")==0)
{
printf("你把公主救了出来
你从公主口中得知了一个更大的阴谋,你可以进入凋零世界
");system("color 8C");
}
return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
}
else
{
int s=SuiJi();
if((guai.attack+s-player.defense/3)<0)
{
player.health-=1;
printf("%s反击,你的HP减少了 1
",guai.name);system("color 8C");
}
else
{
player.health-=guai.attack+s-player.defense/3;
printf("%s反击,你的HP减少了%d
",guai.name,guai.attack+s-player.defense/3);system("color 8C");
}
if(player.health<0)
{
battle=0;
printf("%s战死!金币掉落%d
",player.name,player.level*500);system("color CC");
money-=player.level*500;
player.health=player.max_health/5;
OrdinaryAct();//
return 1;
}
}
return 0;
}
void AddWupin(int wupin_sign)
{
switch(wupin_sign)
{
case 1:
fang4n++;
break;
case 2:
fang3n++;
break;
case 3:
fang2n++;
break;
case 4:
strongman_arm++;
break;
case 5:
gong4n++;
break;
case 6:
gong3n++;
break;
case 7:
gong2n++;
break;
case 8:
gong5n++;
break;
case 9:
fang5n++;
break;
case 10:
diaolingxin++;
break;
case 11:
fang6n++;
break;
case 12:
gong6n++;
break;
case 13:
gong7n++;
break;
case 14:
fang7n++;
break;
default:
printf("AddWupin error
");
}
}
void WhetherLevelUp()
{
int i=0,j=0;
int l1=player.range_exp/150;
int l2=player.range_exp/375;
int l3=player.range_exp/750;
if(player.level0) //15级以下,经验足够 都满足则升级
{
if(l1==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100;
}
else
{
printf("好厉害!连升%d级!",l1);system("color 8E");
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l1,2*l1,20*l1);system("color 8E");
player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
player.attack+=3*l1;
player.defense+=2*l1;
player.max_health+=20*l1;
player.health=player.max_health;
player.level+=l1;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100*l1;
}
}
else if(player.level0)
{
if(l2==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300;
}
else
{
printf("好厉害!连升%d级!",l1);system("color 8E");
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l2,2*l2,20*l2);system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l2;
player.defense+=2*l2;
player.max_health+=20*l2;
player.health=player.max_health;
player.level+=l2;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300*l2;
}
}
else if(l3>0)
{
if(l3==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600;
}
else
{
printf("好厉害!连升%d级!",l1);
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l3,2*l3,20*l3);system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l3;
player.defense+=2*l3;
player.max_health+=20*l3;
player.health=player.max_health;
player.level+=l3;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600*l3;
}
}
}
void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
{
while(1)
{
// \(1000);
// system("cls");
puts("=============================================================================");system("color 89");
printf("要做什么?
1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 7,打开后台 0,退出游戏
");system("color 89");
puts("=============================================================================");system("color 89");
switch(scanf("%d",&choose_number),choose_number)
{
case 1: //显示移动菜单
printf("要去哪里?
");system("color 89");
printf("1,小郑子酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野
");system("color 89");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
place_sign=place.bar; //记录目前位置-酒吧
// OrdinaryAct();
break;
case 2:
place_sign=place.hotel; //进入旅店
printf("金币:%d",money);system("color 89");
printf("要开房吗? 200个金币 1,是 0,否
");system("color 89");
choose_number=1;
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(money-200=300)
{
gong1n++;
money=money-300;
printf ("匕首+1
");system("color 89");
printf("匕首:%d个
",gong1n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
case 2:
if(money>=500)
{
gong2n++;
money=money-500;
printf ("西洋剑+1
");system("color 89");
printf("西洋剑:%d个
",gong2n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
case 3:
if(money>=1000)
{
gong3n++;
money=money-1000;
printf ("碧血战锤+1
");system("color 89");
printf("碧血战锤:%d个
",gong3n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
default:
printf("对不起,我们只会打造以上武器。");system("color 89");
break;
}
break;
case 2:
int fang;
printf("请问您要购买什么防具?
1,布衣¥300 2,铁甲¥500 3,重甲¥1000
");system("color 89");
scanf("%d",&fang);
switch(fang)
{
case 1:
if(money>=300)
{
fang1n++;
money=money-300;
printf ("布衣+1
");system("color 89");
printf("布衣:%d个
",fang1n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
}
break;
case 2:
if(money>=500)
{
fang2n++;
money=money-500;
printf ("铁甲+1
");system("color 89");
printf("铁甲:%d个
",fang2n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d",money);system("color 89");
}
break;
case 3:
if(money>=1000)
{
fang3n++;
money=money-1000;
printf ("重甲+1
");system("color 89");
printf("重甲:%d个
",fang3n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
}
default:
printf("对不起,我们只会打造以上防具。");system("color 89");
break;
}
printf("金币:%d
",money);system("color 89");
break;
case 3:
printf("请问您要购买什么一次性伤害武器?
1,手雷 2,毒镖 3,手抛式原子弹
");system("color 89");
int yi;
scanf("%d",&yi);
switch(yi)
{
case 1:
if(money>=300 && boom=600 && dubiao=1000 && atom_boom=shu)
{
gong1n=gong1n-shu;
money=money+shu*240;
printf("匕首:%d
",gong1n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("装备数不够,无法出售!
");system("color 89");
break;
}
break;
case 2:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong2n>=shu)
{
gong2n=gong2n-shu;
money=money+shu*400;
printf("西洋剑:%d
",gong2n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 3:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong7n>=shu)
{
gong7n=gong7n-shu;
money=money+shu*800;
printf("粗制石剑:%d
",gong7n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 4:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong3n>=shu)
{
gong3n=gong3n-shu;
money=money+shu*800;
printf("碧血战锤:%d
",gong3n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 5:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong6n>=shu)
{
gong6n=gong6n-shu;
money=money+shu*1000;
printf("蜘蛛毒剑:%d
",gong6n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 6:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong4n>=shu)
{
gong4n=gong4n-shu;
money=money+shu*1500;
printf("尚方宝剑:%d
",gong4n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 7:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong5n>=shu)
{
gong5n=gong5n-shu;
money=money+shu*3000;
printf("皮卡大剑:%d
",gong5n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 8:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang1n>=shu)
{
fang1n=fang1n-shu;
money=money+shu*240;
printf("布衣:%d
",fang1n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 9:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang2n>=shu)
{
fang2n=fang2n-shu;
money=money+shu*500;
printf("铁甲:%d
",fang2n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 10:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang7n>=shu)
{
fang7n=fang7n-shu;
money=money+shu*1000;
printf("战斗马甲:%d
",fang7n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 11:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang3n>=shu)
{
fang3n=fang3n-shu;
money=money+shu*800;
printf("重甲:%d
",fang3n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
break;
case 12:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang6n>=shu)
{
fang6n=fang6n-shu;
money=money+shu*2000;
printf("石凯甲:%d
",fang6n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 13:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang4n>=shu)
{
fang4n=fang4n-shu;
money=money+shu*1500;
printf("传说圣甲:%d
",fang4n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 14:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang5n>=shu)
{
fang5n=fang5n-shu;
money=money+shu*3000;
printf("万龙甲:%d
",fang5n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 15:
printf("请问您要出售几颗?");
scanf("%d",&shu);
if(strongman_arm>=shu)
{
strongman_arm=strongman_arm-shu;
money=money+shu*4000;
printf("巨龙晶石:%d
",strongman_arm);
printf("金币:%d
",money);
}
else
{
printf("晶石数不够,无法出售!
");
break;
}
break;
case 0:
break;
break;
default:
printf("没有该装备,无法出售!
");
break;
}
break;
case 5:
int yewai;
while(1)
{
puts("=============================================================================");
printf("要去哪冒险呢?");
printf("
1,神秘沼泽 危险程度:★
2,星耀草原 危险程度:★★★
3,诡异森林 危险程度:★★★
4,荒漠矿场 危险程度:★★★★
5,炽热炎洞 危险程度:★★★★★
6,皮卡营地 危险程度★★★★★★
7,花朵宫殿 危险程度:★★★★★★
8,五千龙穴 危险程度:★★★★★★★
9,凋零宇宙 危险程度:★★★★★★★★
0,离开
");system("color 8c");
puts("=============================================================================");
scanf("%d",&yewai);
switch(yewai)
{
case 1:
place_sign=place.forest1;
s=SuiJi();
if(s<7)
{
battle=1;
guai=xiyi;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=witch;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
//不用调用OAct函数,会自动执行OAct函数;
}
break;
case 3:
place_sign=place.forest2;
s=SuiJi();
if(s<4)
{
battle=1;
guai=witch;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<7)
{
battle=1;
guai=strongman;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}
else
{
battle=1;
guai=zhizhu;
printf("可怕的%s爬了过来!
",guai.name);
BattleAct();
}
break;
case 5:
place_sign=place.forest3;
s=SuiJi();
if(s<=3){
battle=1;
guai=strongman;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<5){
battle=1;
guai=big_strongman;
printf("炽热的%s拍打着翅膀扑了过来!
",guai.name);
BattleAct();
} else if(s<8){
battle=1;
guai=gl;
printf("全身长满矿石的%s扑了过来!
",guai.name);
BattleAct();
}else{
battle=1;
guai=zhizhu;
printf("可怕的%s扑爬了过来!
",guai.name);
BattleAct();
} 
break;
case 2:
place_sign=place.grass1;
s=SuiJi();
if(s<=3){
battle=1;
guai=bee;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<5){
battle=1;
guai=horse;
printf("%s扑了过来!
",guai.name);
BattleAct();
}else if(s<8){
battle=1;
guai=ymr;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}else{
battle=1;
guai=nz;
printf("帅气但令人讨厌的%s向你开枪!
",guai.name);
BattleAct();
}
break;
case 4:
place_sign=place.grass2;
s=SuiJi();
if(s<5){
battle=1;
guai=horse;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<7){
battle=1;
guai=lion;
printf("%s举着尚方宝剑拦住了你!
",guai.name);
BattleAct();}
else{
battle=1;
guai=gl;
printf("全身长满矿石的%s扑了过来!
",guai.name);
BattleAct();
}
break;
case 6:
s=SuiJi();
if(s<7){
battle=1; 
guai=pika;
printf("你感到了强烈的电流涌入全身,%s走了过来!
",guai.name);
BattleAct();
}
else if(s<9){
battle=1;
guai=dapika;
printf("天空一声巨响,三道闪电劈到%s的身上,%s手持雷霆之刃冲了过来!
",guai.name,guai.name);
BattleAct();
}
else{
printf("这里安全
");
}
break;
case 8:
s=SuiJi();
if(s<=3)
{
battle=1; 
guai=cl;
printf("一条长龙横卧洞内,你定睛一看,是%s扑了过来!
",guai.name);
BattleAct();
}
else if(s=4)
{
battle=1; 
guai=big_strongman;
printf("炽热的%s拍打着翅膀扑了过来!
",guai.name);
BattleAct();
}
else {
battle=1;
guai=jl;
printf("一条金光闪闪的长龙盘旋空中,你定睛一看,是传说中的%s扑了过来!
",guai.name);
BattleAct();
}
break;
case 7:
place_sign=place.grass3;
s=SuiJi();
if(s<5)
{
battle=1;
guai=lion;
printf("%s举着尚方宝剑拦住了你!
",guai.name);
BattleAct();
}
else if(s=1)
{
printf("神秘老人:
哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨龙晶石我要了,公主你也别想带走!
");
guai=shitu;
printf("瞬间,你被一团黑雾笼罩,你被拉入了凋零幻境,%s向你发起攻击!
",guai.name);
BattleAct();
}
else printf("神秘老人:
年轻人,你好啊.如果你有巨龙晶石,我可以告诉你公主的下落哦~
");
}
else
{
battle=1;
guai=nz;
printf("帅气但令人讨厌的%s向你开枪!
",guai.name);
BattleAct();
}
break;
case 9:
s=SuiJi();
if(diaolingxin!=0){
if(s==1)
{
battle=1; 
guai=dlfb;
printf("一个巨大的黑暗物体,周围环绕着大量的由破碎方块组成的黑色颗粒云环的%s向你发起攻击!
",guai.name);
BattleAct();
}
else if(s<=2 && s<=4)
{
battle=1; 
guai=dlkl;
printf("手持凋零剑的黑色凶恶%s扑了过来!
",guai.name);
BattleAct();
}
else if(s=7){
battle=1;
guai=gst;
printf("一个巨大的触手向你打来,你挡了下来%s扑了过来!
",guai.name);
BattleAct();
} else{
battle=1;
guai=dljs;
printf("一只巨大的猛兽%s冲了过来!
",guai.name);
BattleAct();
}
}if(diaolingxin==0){
cout<<"你没有凋零之心,需要击败凋零巨兽" <<endl;
}
break;
if(yewai!=0)
{
printf("该区域为未知区域,无法进入。
");system("color 89");
break;
}
}
if(yewai==0)
{
break;
printf("已离开荒野。");system("color 89");
}
}
}
break;
case 2:
ChooseWupin();
break; //显示道具,并可以使用.
case 3: //对话选项
if(place_sign==place.bar)
{
printf("要和谁说话?
1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人
"); system("color 89");//显示对话人物
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
printf("红发女郎:
吧台边那个Hunter好帅啊!(~脸红~)
听说他经常外出打猎,外面的路他应该很熟悉的!
");system("color 89");
break;
case 2:
if(fang1n<1&&gong1n<1)
{
printf("赏金猎人:
你要救公主啊!好胆量!
不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!
");system("color 89");
printf("%s心想:哇,这位大叔人真好啊!
)",player.name);
gong1n++;
fang1n++;
}
else printf("赏金猎人:
加油吧,年轻人!
不要被外面世界所吓倒!
");system("color 89");
break;
case 3:
printf("要喝点什么?
1,二锅头25金币 HP+20 2,伏特加80金币 HP+50 3,人头马面150金币 HP+100 0,返回
");system("color 89");
choose_number=1;
while(choose_number)
{
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(money<25){
printf("钱不够!");system("color 89");
}
else
{
if(player.health+20<=player.max_health){
printf("HP+20.");system("color 89");
money-=25;
player.health+=20;
}
else{
printf("HP满了");system("color 89");
player.health=player.max_health;
}
}
break;
case 2:
if(money<80){
printf("钱不够!");system("color 89");
}
else{
if(player.health+50<=player.max_health){
printf("HP+50.");system("color 89");
money-=80;
player.health+=50;
}
else{
printf("HP满了");system("color 89");
player.health=player.max_health;
}
}
break;
case 3:
if(money<150){
printf("钱不够!");system("color 89");
}
else{
if(player.health+100=100&&cao=150&&jijiubao=250&&baiyao=400&&superbaiyao=150){
jingyancao++;
money=money-150;
printf ("经验草+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
case 6:
if(money>=300){
jingyanbao++;
money=money-300;
printf ("经验包+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
case 7:
if(money>=500){
jingyanshi++;
money=money-500;
printf ("经验石+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
}
case 0:
printf("金币:%d
",money);system("color 89");
printf("再见,欢迎下次再来!
");system("color 89");
break;
}
if(mai==2){
printf("药品商人:去去去,老子没时间陪你聊。
");system("color 89");
}
}
}
else if(place_sign==place.hotel)
printf("“老板娘!我...”
“我忙着呢,没空理你~”
");
else printf("这里好像没人可以聊天
");system("color 89");
break;
case 4:
DisplayState();
break; //显示状态
case 5: //装备
printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,粗制石剑:%d个 4,碧血战锤:%d个 5,蜘蛛毒剑:%d个 6,尚方宝剑:%d个 7,雷霆之刃:%d个
",gong1n,gong2n,gong7n,gong3n,gong6n,gong4n,gong5n);system("color 89");
printf("防御装备: 8,布衣:%d个 9,铁甲:%d个 10,战斗马甲:%d个 11,重甲:%d个 12,石铠甲:%d个 13,传说圣甲:%d个 14,万龙甲:%d个		0,返回
",fang1n,fang2n,fang7n,fang3n,fang6n,fang4n,fang5n);system("color 89");
printf("选择要装备的武器或防具:
");system("color 89");
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(gong1n>=1){
printf("拿起了匕首
");system("color 89");
gong=gong1;
strcpy(gongname,"匕首");system("color 89");
}
else printf("你没有匕首可以装备
");system("color 89");
break;
case 2:
if(gong2n>=1){
printf("拿起了西洋剑
");system("color 89");
gong=gong2;
strcpy(gongname,"西洋剑");system("color 89");
}
else printf("你没有西洋剑可以装备
");system("color 89");
break;
case 3:
if(gong7n>=1){
printf("拿起了粗制石剑
");
gong=gong7;
strcpy(gongname,"粗制石剑");
}
else printf("你没有粗制石剑可以装备
");
break;
case 4:
if(gong3n>=1){
printf("拿起了碧血战锤
");
gong=gong3;
strcpy(gongname,"碧血战锤");
}
else printf("你没有碧血战锤可以装备
");
break;
case 5:
if(gong6n>=1){
printf("拿起了蜘蛛毒剑
");
gong=gong6;
strcpy(gongname,"蜘蛛毒剑");
}
else printf("你没有蜘蛛毒剑可以装备
");
break;
case 6:
if(gong4n>=1){
printf("拿起了尚方宝剑
");
gong=gong4;
strcpy(gongname,"尚方宝剑");
}
else printf("你没有尚方宝剑可以装备
");
break;
case 7:
if(gong5n>=1){
printf("拿起了雷霆之刃
");
gong=gong5;
strcpy(gongname,"雷霆之刃");
}
else printf("你没有雷霆之刃可以装备
");
break;
case 8:
if(fang1n>=1){
printf("穿上了布衣
");
fang=fang1;
strcpy(fangname,"布衣");
}
else printf("你没有布衣可以装备
");
break;
case 9:
if(fang2n>=1){
printf("穿上了铁甲
");
fang=fang2;
strcpy(fangname,"铁甲");
}
else printf("你没有铁甲可以装备
");
break;
case 10:
if(fang7n>=1){
printf("穿上了战斗马甲
");
fang=fang7;
strcpy(fangname,"战斗马甲");
}
else printf("你没有战斗马甲可以装备
");
break;
case 11:
if(fang3n>=1){
printf("穿上了重甲
");
fang=fang3;
strcpy(fangname,"重甲");
}
else printf("你没有重甲可以装备
");
break;
case 12:
if(fang6n>=1){
printf("穿上了石铠甲
");
fang=fang6;
strcpy(fangname,"石凯甲");
}
else printf("你没有石凯甲可以装备
");
break;
case 13:
if(fang4n>=1){
printf("穿上了传说圣甲
");
fang=fang4;
strcpy(fangname,"传说圣甲");
}
else printf("你没有传说圣甲可以装备
");
break;
case 14:
if(fang5n>=1){
printf("穿上了万龙甲
");
fang=fang5;
strcpy(fangname,"万龙甲");
}
else printf("你没有万龙甲可以装备
");
break; 
case 0:
printf("未更换装备
");
break;
default:
printf("change error!");
}
break;
case 6:
printf(" 您好,欢迎您玩苍穹世界(斗破苍穹)。为了给您更好的游戏体验,zty时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty ”(不包括双引号)。由于2.10.2版本巨龙晶石的buy,我们在2.10.2的基础上进行修改,已修复该buy。并且修改了巨龙晶石的升级上限,希望大家喜欢。在这里要感谢吴昊同学,他给了我们许多宝贵的建议,谢谢。
");system("color 89");
break;
case 0:
printf("确定退出游戏?(Y/N)
");system("color 89");
getchar();
proof=getchar();
if(proof=='y'||proof=='Y'){
printf("按回车退出");system("color 89");
getchar();
return;
}
else if(proof=='n'||proof=='N')printf("继续游戏!
");
else printf("继续!
");
break;
default:
printf("输入错误!
");
break;
case 7:
int mi;
cout<>mi;
if(mi%20120913==0){
cout<>> "<>htsr;
if(htsr==1){
cout<<"成功获得效果 *金币加9999
";
money+=999999;
}
if(htsr==2){
cout<<"成功获得效果 *血量加9999
";
player.health+=9999;
}
if(htsr==3){
cout<<"成功获得效果 *血量上限加9999
";
player.max_health+=9999;
}
if(htsr==4){
cout<<"成功获得效果 *攻击加9999
";
player.attack+=9999;
}
if(htsr==5){
cout<<"成功获得效果 *防御加9999
";
player.defense+=9999;
}
if(htsr%211==0){
cout<<"成功退出
";
continue;
}
}
else{
cout<<"输入错误!请检查!"<<endl;
continue;
}
break;
}
}
}
void DisplayState()
{
printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d 
",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
printf("武器: %s 防具: %s 
",gongname,fangname);
printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d 
",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
}
void BattleAct()
{
while(1)
{
puts("=============================================================================");
printf("要怎么办?
1,攻击 2,物品 3,查看状态 4,逃跑
");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
s=SuiJi();
printf("%s攻击! %sHP减少%d
",player.name,guai.name,player.attack+s+gong-guai.defense/3);
guai.health-=player.attack+s+gong-guai.defense/3;
if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
else continue;
case 2:
ChooseWupin();
break; //选择物品,可以使用,战斗中允许使用攻击性物品
case 3:
DisplayState();
break; //显示状态
case 4:
s=SuiJi();
if(s<4) //40%的概率可以逃跑
{
printf("%s逃跑了~
",player.name);
battle=0;
return;
}
else printf("%s逃跑失败!
",player.name);
break;
default:
printf("输入错误,重新输入!
");
}
}
}
void printf(char *p)
{
while(1)
{
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(100);
}
} 

2.10.5

#include
#include
#include
#include
#include 
#include //SLEEP函数
using namespace std;
struct Player {//玩家结构体,并初始化player
char name[21];
int attack;
int defense;
int health;
long int max_health;
int level;
int exp;
int range_exp;
long int max_exp;
} player= {"勇者",100,80,200,200,1,0,0,100};
struct Enemy {//怪的结构体,并初始化各种怪
char name[20];
char wupin[20];
int attack;
int defense;
int health;
int money;
long int exp;
int wupin_sign;
int wupinpro;
int double_attack;
int miss;
}
//怪,拿格伦石人举例 
// 怪变量  怪名     掉落的装备 攻   防  血  金币 经验 掉落装备编号 掉落概率 真伤(被防御后的破甲伤害)   不能改 
//  gl= {"格伦石人","石铠甲",  30, 150,1000,500, 250,      11,       7,        1,                         0},
gl= {"格伦石人","石铠甲",30,150,1000,500,250,11,7,1,0},
zhizhu= {"洞穴蜘蛛","蜘蛛毒剑",140,20,250,400,200,12,5,1,0},
ymr= {"野蛮人","粗制石剑",20,20,150,100,50,13,5,1,0},
nz= {"牛仔","战斗马甲",80,20,250,500,250,14,10,1,0},
strongman= {"森林巨人","传说圣甲",50,50,580,200,100,1,5,1,0},
witch= {"兽人","重甲",35,55,250,50,50,2,4,1,1},
xiyi= {"毒蜴","鳞甲",20,25,80,30,35,3,8,2,2},
big_strongman= {"喷火龙","巨龙晶石",40*5,50*5,200*5,200*5,100*5,4,4,2,0},
lion= {"皇家士兵","尚方宝剑",100,30,380,200,100,5,5,1,0},
horse= {"独眼巨人","碧血战锤",50,22,360,50,50,6,5,1,1},
bee= {"剑客","西洋剑",27,11,60,30,35,7,5,2,2},
shitu= {"凋零女巫","凋零通行证",1400,500,15000,10000,5000,15,10,1,0},
dljs= {"凋零巨兽","凋零之心",1200,700,20000,10000,5000,10,7,1,0},
pika= {"皮卡超人","\0",300,40*8,1000,2000,1000,0,0,1,0},
dapika= {"雷霆皮卡","雷霆之刃",350,40*10,1500,3000,2000,8,6,6,0},
cl= {"熔岩飞龙","\0",450,50*10,2000,3500,2500,0,0,1,0},
jl= {"裂凯金龙","金龙铠",500,40*20,5000,8000,4500,9,6,6,1},
gst={"凋零共生体","\0",1800,65*10,15000,0,10000,0,0,1,0},
dlkl= {"凋零骷髅","\0",3000,30*10,12000,0,10000,0,0,1,0},
dlfb= {".+*凋零风暴*+.","\0",9000,1500,49000,0,500000,0,0,1,0},
guai= {"\0","\0",0,0,0,0,0,0,0,0,0};
struct Place{
int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3,te1,te2,te3,te4;
} place= {1,2,3,4,5,6,7,8,9,10,11,12};
int max_exp=0;
int htsr;
int choose_number=0,s=0,strongman_arm=0,battle=0,money=500,place_sign=10;
int cao=3,jijiubao=3,baiyao=3,superbaiyao=3,miansi=1,boom=3,dubiao=2,atom_boom=1;
int fang=0,fang1=10,fang1n=0,fang2=20,fang2n=0,fang3=40,fang3n=0,fang4=100,fang4n=0,fang5=400,fang5n=0,fang6=150,fang6n=0,fang7=60,fang7n=0;
int gong=0,gong1=10,gong1n=0,gong2=20,gong2n=0,gong3=45,gong3n=0,gong4=100,gong4n=0,gong5=300,gong5n=0,gong6=150,gong6n=0,gong7=45,gong7n=0;
int jingyancao=0,jingyanbao=0,jingyanshi=0,htmmcs=5;
int diaolingxinhave=0,diaolingxin=0; 
char gongname[20]="无",fangname[20]="无";
char proof;
void AddWupin(int);
int AttackResult();
void BattleAct();  //      ____
void ChooseWupin();  //   /___/|
void DisplayState();  //  |   |/
void OrdinaryAct();     //▔▔
int SuiJi();
int SuiJi100();
void WhetherLevelUp();
void SlowDisplay(char *);
int main(){
MessageBox (NULL, "欢迎来到斗破苍穹 2.10.5 正式版 !", "斗破苍穹 2.10.5 游戏开始提示", MB_OK);
int i=0,j=0,k=0;
char player_name[21];
Sleep(1000);
printf("                            _________________________________                    ");system("color 89");
printf("                          /________________________________/|                    ");system("color 89");
printf("                _.+=*^--{|欢迎来到 [斗破苍穹] 2.10.5 正式版|}--^*=+.              ");system("color 89");
printf("                          ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔                      
");system("color 89");
//如果想使用外挂,名字请输入:“zty ”。
Sleep(1000);
printf("这里是斗破苍穹(苍穹世界)! 契晋赫苟国的漓嘉茜公主被神秘人绑架了!
伟大的勇者啊~拿起你的武器,营救公主!
输入你的名字: (20个字符)
");system("color 89");
scanf("%s",player_name);
strncpy(player.name,player_name,20);
if(strcmp(player.name,"zty")==0){
printf("
封印多年的zty族血统啊!你终于觉醒了!
zty,你成为了天选之人,请你救出公主吧!
");
player.attack=99999;
player.defense=99999;
player.health=999999;
player.max_health=999999;
}
getchar();
OrdinaryAct();
return 0;
}
int SuiJi(){
srand((unsigned)time(NULL));
return rand()%10;
}
int SuiJi100(){
srand((unsigned)time(NULL));
return rand()%100;
}
void ChooseWupin(){//选择物品 并使用
printf("物品: 1,止血草%d个 2,急救包%d个 3,云南白药%d个 4,超级云南白药%d个 5,手雷%d个 6,毒标%d个 7,手抛式原子弹%d个 8,经验草%d个 9,经验包%d个 10,经验石%d个 11,巨龙晶石%d个 12,免死金牌%d个 13,凋零之心%d个 0,返回
",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom,jingyancao,jingyanbao,jingyanshi,strongman_arm,miansi,diaolingxin);system("color 8A");
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(cao>0){
printf("使用止血草,HP增加120
");system("color 8A");
cao--;
if(player.health+120>player.max_health)player.health=player.max_health;
else player.health+=120;
}
else printf("没有止血草了
");system("color 8A");
break;
case 2:
if(jijiubao>0){
printf("使用急救包,HP增加180
");system("color 8A");
jijiubao--;
if(player.health+180>player.max_health)player.health=player.max_health;
else player.health+=180;
}
else printf("没有急救包了
");system("color 8A");
break;
case 3:
if(baiyao>0){
printf("使用云南白药,HP增加240
z
");system("color 8A");
baiyao--;
if(player.health+240>player.max_health)player.health=player.max_health;
else player.health+=240;
}
else printf("没有云南白药了
");system("color 8A");
break;
case 4:
if(superbaiyao>0){
printf("使用超级云南白药,HP增加400
");system("color 8A");
superbaiyao--;
if(player.health+400>player.max_health)player.health=player.max_health;
else player.health+=400;
}
else printf("没有超级云南白药了
");system("color 8A");
break;
case 5:
if(battle){//在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
if(boom>0){
printf("使用手雷,敌人HP减少100
");system("color 84");
boom--;
guai.health-=100;
AttackResult();
}
}
else printf("非战斗状态,不能使用手雷!
");system("color 84");
break;
case 6:
if(battle){ //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
if(dubiao>0){
printf("使用毒标,敌人HP减少200
");system("color 84");
dubiao--;
guai.health-=200;
AttackResult();
}
}
else printf("非战斗状态,不能使用毒标!
");system("color 84");
break;
case 7:
if(battle){ //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
if(atom_boom>0){
printf("使用手抛式原子弹,敌人HP减少1500
");system("color 84");
atom_boom--;
guai.health-=1500;
AttackResult();
}
}
else printf("非战斗状态,不能使用手抛式原子弹!
");system("color 84");
break;
case 8:
if(jingyancao>0 && player.level<200){
printf("使用经验草,等级增加3级
");system("color 8E");
jingyancao--;
player.max_health=player.max_health+60; 
player.attack+=9;
player.defense+=6;
player.level+=3;
player.health=player.max_health;
printf("等级:%d
",player.level);system("color 8E");
}
else    if(jingyancao0 && player.level197&&player.level<200){
int sheng;
sheng=100-player.level;
player.level+=sheng;
jingyanbao--;
player.max_health=player.max_health+sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用经验包,等级增加%d级",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else{
printf("使用经验包,等级增加5级
");system("color 8E");
jingyanbao--;
player.max_health=player.max_health+100; 
player.attack+=15;
player.defense+=10;
player.level+=5;
player.health=player.max_health;
printf("等级:%d
",player.level);system("color 8E");
}
}
else if(jingyanbao0 && player.level192&&player.level<200){
int sheng;
sheng=100-player.level;
player.level+=sheng;
player.max_health+=sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用经验石,等级增加%d级
",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else{
printf("使用经验石,等级增加10级
");system("color 8E");
jingyanshi--;
player.max_health=player.max_health+200; 
player.attack+=30;
player.defense+=20;
player.level+=10;
player.health=player.max_health;
}
}
else if(jingyanshi0 && player.level482&&player.level<500)
{
int sheng;
sheng=500-player.level;
player.level+=sheng;
player.max_health=player.max_health+sheng*20; 
player.attack+=sheng*3;
player.defense+=sheng*2;
player.health=player.max_health;
printf("使用巨龙晶石,等级增加%d级",sheng);system("color 8E");
printf("等级:%d
",player.level);system("color 8E");
}
else
{
printf("使用巨龙晶石,等级增加20级
");system("color 8E");
strongman_arm--;
player.max_health=player.max_health+400; 
player.attack+=60;
player.defense+=40;
player.health=player.max_health;
player.level+=20;
printf("等级:%d
",player.level);system("color 8E");
}
}
else if(strongman_arm0)
{
printf("使用免死金牌,HP满
");system("color 8b");
miansi--;
if(player.health+999999>player.max_health)player.health=player.max_health;
else player.health+=999999;
}else printf("没有免死金牌了
"); system("color 8b");break;
break;
case 13:
if(diaolingxin>0)
{
printf("使用凋零之心
HP上限+100  攻击+100
");system("color 8b");
diaolingxin--;
player.max_health+=100;
player.attack+=100; 
}else printf("没有凋零之心了
"); system("color 8b");break;
case 0:
break;
default:
printf("ChooseWupin error!
");
}
}
int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
{
if(guai.health<=0)
{
battle=0;
printf("战斗胜利!获得金币%d,经验%d
",guai.money,guai.exp);system("color 8C");
player.exp+=guai.exp;
player.range_exp+=guai.exp;
money+=guai.money;
s=SuiJi();
if(s<guai.wupinpro)
{
printf("从敌人尸骸中发现");system("color 8C");
printf("%s
",guai.wupin);
AddWupin(guai.wupin_sign);
}
WhetherLevelUp();
if(strcmp(guai.name,"*凋零巨兽*")==0)
{
printf("你把公主救了出来
你从公主口中得知了一个更大的阴谋,你可以进入凋零世界
");system("color 8C");
}
return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
}
else
{
int s=SuiJi();
if((guai.attack+s-player.defense/3)<0)
{
player.health-=1;
printf("%s反击,你的HP减少了 1
",guai.name);system("color 8C");
}
else
{
player.health-=guai.attack+s-player.defense/3;
printf("%s反击,你的HP减少了%d
",guai.name,guai.attack+s-player.defense/3);system("color 8C");
}
if(player.health<0)
{
battle=0;
printf("%s战死!金币掉落%d
",player.name,player.level*500);system("color CC");
money-=player.level*500;
player.health=player.max_health/5;
OrdinaryAct();//
return 1;
}
}
return 0;
}
void AddWupin(int wupin_sign)
{
switch(wupin_sign)
{
case 1:
fang4n++;
break;
case 2:
fang3n++;
break;
case 3:
fang2n++;
break;
case 4:
strongman_arm++;
break;
case 5:
gong4n++;
break;
case 6:
gong3n++;
break;
case 7:
gong2n++;
break;
case 8:
gong5n++;
break;
case 9:
fang5n++;
break;
case 10:
diaolingxin++;
break;
case 11:
fang6n++;
break;
case 12:
gong6n++;
break;
case 13:
gong7n++;
break;
case 14:
fang7n++;
break;
case 15:
diaolingxinhave++;
break;
default:
printf("AddWupin error
");
}
}
void WhetherLevelUp()
{
int i=0,j=0;
int l1=player.range_exp/150;
int l2=player.range_exp/375;
int l3=player.range_exp/750;
if(player.level0) //15级以下,经验足够 都满足则升级
{
if(l1==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100;
}
else
{
printf("好厉害!连升%d级!",l1);system("color 8E");
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l1,2*l1,20*l1);system("color 8E");
player.exp=(player.exp+guai.exp) || player.exp-((player.exp+guai.exp) || player.exp)%100;
player.attack+=3*l1;
player.defense+=2*l1;
player.max_health+=20*l1;
player.health=player.max_health;
player.level+=l1;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=100*l1;
}
}
else if(player.level0)
{
if(l2==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300;
}
else
{
printf("好厉害!连升%d级!",l1);system("color 8E");
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l2,2*l2,20*l2);system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l2;
player.defense+=2*l2;
player.max_health+=20*l2;
player.health=player.max_health;
player.level+=l2;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=300*l2;
}
}
else if(l3>0)
{
if(l3==1)
{
printf("%s",player.name);
printf(" 升级!
攻击力+3, 防御力+2, HP上限+20
");system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3;
player.defense+=2;
player.max_health+=20;
player.health=player.max_health;
player.level++;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600;
}
else
{
printf("好厉害!连升%d级!",l1);
printf("攻击力+%d, 防御力+%d, HP上限+%d
",3*l3,2*l3,20*l3);system("color 8E");
player.exp=player.exp+guai.exp-(player.exp+guai.exp)%100;
player.attack+=3*l3;
player.defense+=2*l3;
player.max_health+=20*l3;
player.health=player.max_health;
player.level+=l3;
player.range_exp=0;
player.exp=player.max_exp;
player.max_exp+=600*l3;
}
}
}
void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
{
while(1)
{
// \(1000);
// system("cls");
puts("=============================================================================");system("color 89");
printf("要做什么?
1,移动 2,道具 3,对话 4,查看状态 5,装备 6,关于游戏 7,打开后台 0,退出游戏
");system("color 89");
puts("=============================================================================");system("color 89");
switch(scanf("%d",&choose_number),choose_number)
{
case 1: //显示移动菜单
printf("要去哪里?
");system("color 89");
printf("1,小郑子酒吧 2,诺亚方舟酒店 3,北朝商会 4,红玉拍卖行 5,冒险荒野
");system("color 89");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
place_sign=place.bar; //记录目前位置-酒吧
// OrdinaryAct();
break;
case 2:
place_sign=place.hotel; //进入旅店
printf("金币:%d",money);system("color 89");
printf("要开房吗? 200个金币 1,是 0,否
");system("color 89");
choose_number=1;
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(money-200=300)
{
gong1n++;
money=money-300;
printf ("匕首+1
");system("color 89");
printf("匕首:%d个
",gong1n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
case 2:
if(money>=500)
{
gong2n++;
money=money-500;
printf ("西洋剑+1
");system("color 89");
printf("西洋剑:%d个
",gong2n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
case 3:
if(money>=1000)
{
gong3n++;
money=money-1000;
printf ("碧血战锤+1
");system("color 89");
printf("碧血战锤:%d个
",gong3n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
default:
printf("对不起,我们只会打造以上武器。");system("color 89");
break;
}
break;
case 2:
int fang;
printf("请问您要购买什么防具?
1,布衣¥300 2,铁甲¥500 3,重甲¥1000
");system("color 89");
scanf("%d",&fang);
switch(fang)
{
case 1:
if(money>=300)
{
fang1n++;
money=money-300;
printf ("布衣+1
");system("color 89");
printf("布衣:%d个
",fang1n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
}
break;
case 2:
if(money>=500)
{
fang2n++;
money=money-500;
printf ("铁甲+1
");system("color 89");
printf("铁甲:%d个
",fang2n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d",money);system("color 89");
}
break;
case 3:
if(money>=1000)
{
fang3n++;
money=money-1000;
printf ("重甲+1
");system("color 89");
printf("重甲:%d个
",fang3n);system("color 89");
printf("金币:%d
",money);system("color 89");
}
else
{
printf("钱不够!
");system("color 89");
printf("金币:%d
",money);system("color 89");
}
default:
printf("对不起,我们只会打造以上防具。");system("color 89");
break;
}
printf("金币:%d
",money);system("color 89");
break;
case 3:
printf("请问您要购买什么一次性伤害武器?
1,手雷 2,毒镖 3,手抛式原子弹
");system("color 89");
int yi;
scanf("%d",&yi);
switch(yi)
{
case 1:
if(money>=300 && boom=600 && dubiao=1000 && atom_boom=shu)
{
gong1n=gong1n-shu;
money=money+shu*240;
printf("匕首:%d
",gong1n);system("color 89");
printf("金币:%d
",money);system("color 89");
break;
}
else
{
printf("装备数不够,无法出售!
");system("color 89");
break;
}
break;
case 2:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong2n>=shu)
{
gong2n=gong2n-shu;
money=money+shu*400;
printf("西洋剑:%d
",gong2n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 3:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong7n>=shu)
{
gong7n=gong7n-shu;
money=money+shu*800;
printf("粗制石剑:%d
",gong7n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 4:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong3n>=shu)
{
gong3n=gong3n-shu;
money=money+shu*800;
printf("碧血战锤:%d
",gong3n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 5:
printf("请问您要出售几件?
");system("color 89");
scanf("%d",&shu);
if(gong6n>=shu)
{
gong6n=gong6n-shu;
money=money+shu*1000;
printf("蜘蛛毒剑:%d
",gong6n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 6:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong4n>=shu)
{
gong4n=gong4n-shu;
money=money+shu*1500;
printf("尚方宝剑:%d
",gong4n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 7:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(gong5n>=shu)
{
gong5n=gong5n-shu;
money=money+shu*3000;
printf("皮卡大剑:%d
",gong5n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 8:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang1n>=shu)
{
fang1n=fang1n-shu;
money=money+shu*240;
printf("布衣:%d
",fang1n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 9:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang2n>=shu)
{
fang2n=fang2n-shu;
money=money+shu*500;
printf("铁甲:%d
",fang2n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 10:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang7n>=shu)
{
fang7n=fang7n-shu;
money=money+shu*1000;
printf("战斗马甲:%d
",fang7n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 11:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang3n>=shu)
{
fang3n=fang3n-shu;
money=money+shu*800;
printf("重甲:%d
",fang3n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
break;
case 12:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang6n>=shu)
{
fang6n=fang6n-shu;
money=money+shu*2000;
printf("石凯甲:%d
",fang6n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 13:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang4n>=shu)
{
fang4n=fang4n-shu;
money=money+shu*1500;
printf("传说圣甲:%d
",fang4n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 14:
printf("请问您要出售几件?
");
scanf("%d",&shu);
if(fang5n>=shu)
{
fang5n=fang5n-shu;
money=money+shu*3000;
printf("金龙铠:%d
",fang5n);
printf("金币:%d
",money);
break;
}
else
{
printf("装备数不够,无法出售!
");
break;
}
case 15:
printf("请问您要出售几颗?");
scanf("%d",&shu);
if(strongman_arm>=shu)
{
strongman_arm=strongman_arm-shu;
money=money+shu*4000;
printf("巨龙晶石:%d
",strongman_arm);
printf("金币:%d
",money);
}
else
{
printf("晶石数不够,无法出售!
");
break;
}
break;
case 0:
break;
break;
default:
printf("没有该装备,无法出售!
");
break;
}
break;
case 5:
int yewai;
while(1)
{
puts("=============================================================================");
printf("要去哪冒险呢?");
printf("
1,神秘沼泽 危险程度:★
2,星耀草原 危险程度:★★★
3,诡异森林 危险程度:★★★
4,荒漠矿场 危险程度:★★★★
5,炽热炎洞 危险程度:★★★★★
6,皮卡营地 危险程度★★★★★★
7,花朵宫殿 危险程度:★★★★★★
8,熔岩龙穴 危险程度:★★★★★★★
9,凋零宇宙 危险程度:★★★★★★★★
0,离开
");system("color 8c");
puts("=============================================================================");
scanf("%d",&yewai);
switch(yewai)
{
case 1:
place_sign=place.forest1;
s=SuiJi();
if(s<7)
{
battle=1;
guai=xiyi;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=witch;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else
{
printf("这里安全
");
//不用调用OAct函数,会自动执行OAct函数;
}
break;
case 3:
place_sign=place.forest2;
s=SuiJi();
if(s<4)
{
battle=1;
guai=witch;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<7)
{
battle=1;
guai=strongman;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}
else
{
battle=1;
guai=zhizhu;
printf("可怕的%s爬了过来!
",guai.name);
BattleAct();
}
break;
case 5:
place_sign=place.forest3;
s=SuiJi();
if(s<=3){
battle=1;
guai=strongman;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<5){
battle=1;
guai=big_strongman;
printf("炽热的%s拍打着翅膀扑了过来!
",guai.name);
BattleAct();
} else if(s<8){
battle=1;
guai=gl;
printf("全身长满矿石的%s扑了过来!
",guai.name);
BattleAct();
}else{
battle=1;
guai=zhizhu;
printf("可怕的%s扑爬了过来!
",guai.name);
BattleAct();
} 
break;
case 2:
place_sign=place.grass1;
s=SuiJi();
if(s<=3){
battle=1;
guai=bee;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<5){
battle=1;
guai=horse;
printf("%s扑了过来!
",guai.name);
BattleAct();
}else if(s<8){
battle=1;
guai=ymr;
printf("横冲直撞的%s扑了过来!
",guai.name);
BattleAct();
}else{
battle=1;
guai=nz;
printf("帅气但令人讨厌的%s向你开枪!
",guai.name);
BattleAct();
}
break;
case 4:
place_sign=place.grass2;
s=SuiJi();
if(s<5){
battle=1;
guai=horse;
printf("%s扑了过来!
",guai.name);
BattleAct();
}
else if(s<7){
battle=1;
guai=lion;
printf("%s举着尚方宝剑拦住了你!
",guai.name);
BattleAct();}
else{
battle=1;
guai=gl;
printf("全身长满矿石的%s扑了过来!
",guai.name);
BattleAct();
}
break;
case 6:
s=SuiJi();
if(s<7){
battle=1; 
guai=pika;
printf("你感到了强烈的电流涌入全身,%s走了过来!
",guai.name);
BattleAct();
}
else if(s<9){
battle=1;
guai=dapika;
printf("天空一声巨响,三道闪电劈到%s的身上,%s手持雷霆之刃冲了过来!
",guai.name,guai.name);
BattleAct();
}
else{
printf("这里安全
");
}
break;
case 8:
s=SuiJi();
if(s<=3)
{
battle=1; 
guai=cl;
printf("一条飞龙横卧洞内,你定睛一看,是%s扑了过来!
",guai.name);
BattleAct();
}
else if(s=4)
{
battle=1; 
guai=big_strongman;
printf("炽热的%s拍打着翅膀扑了过来!
",guai.name);
BattleAct();
}
else {
battle=1;
guai=jl;
printf("一条金光闪闪的飞龙盘旋空中,,是传说中的%s扑了过来!
",guai.name);
BattleAct();
}
break;
case 7:
place_sign=place.grass3;
s=SuiJi();
if(s<5)
{
battle=1;
guai=lion;
printf("%s举着尚方宝剑拦住了你!
",guai.name);
BattleAct();
}
else if(s=1)
{
printf("神秘老人:
哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨龙晶石我要了,公主你也别想带走!
");
guai=shitu;
printf("瞬间,你被一团黑雾笼罩,你被拉入了凋零幻境,%s向你发起攻击!
",guai.name);
BattleAct();
}
else printf("神秘老人:
年轻人,你好啊.如果你有巨龙晶石,我可以告诉你公主的下落哦~
");
}
else
{
battle=1;
guai=nz;
printf("帅气但令人讨厌的%s向你开枪!
",guai.name);
BattleAct();
}
break;
case 9:
s=SuiJi();
if(diaolingxinhave!=0){
if(s==1)
{
battle=1; 
guai=dlfb;
printf("一个巨大的黑暗物体,周围环绕着大量的由破碎方块组成的黑色颗粒云环的%s向你发起攻击!
",guai.name);
BattleAct();
}
else if(s>=2 && s=5&&s<=7){
battle=1;
guai=gst;
printf("一个巨大的触手向你打来,你挡了下来%s扑了过来!
",guai.name);
BattleAct();
} else{
battle=1;
guai=dljs;
printf("一只巨大的猛兽%s冲了过来!
",guai.name);
BattleAct();
}
}if(diaolingxin==0){
cout<<"你没有击败过凋零女巫,请去花朵宫殿击败凋零女巫。" <<endl;
}
break;
if(yewai!=0)
{
printf("该区域为未知区域,无法进入。
");system("color 89");
break;
}
}
if(yewai==0)
{
break;
printf("已离开荒野。");system("color 89");
}
}
}
break;
case 2:
ChooseWupin();
break; //显示道具,并可以使用.
case 3: //对话选项
if(place_sign==place.bar)
{
printf("要和谁说话?
1,红发女郎 2,赏金猎人 3,酒吧老板 4,药品商人
"); system("color 89");//显示对话人物
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
printf("红发女郎:
吧台边那个Hunter好帅啊!(~脸红~)
听说他经常外出打猎,外面的路他应该很熟悉的!
");system("color 89");
break;
case 2:
if(fang1n<1&&gong1n<1)
{
printf("赏金猎人:
你要救公主啊!好胆量!
不过外面的世界很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!
");system("color 89");
printf("%s心想:哇,这位大叔人真好啊!
)",player.name);
gong1n++;
fang1n++;
}
else printf("赏金猎人:
加油吧,年轻人!
不要被外面世界所吓倒!
");system("color 89");
break;
case 3:
printf("要喝点什么?
1,二锅头25金币 HP+20 2,伏特加80金币 HP+50 3,人头马面150金币 HP+100 0,返回
");system("color 89");
choose_number=1;
while(choose_number)
{
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(money<25){
printf("钱不够!");system("color 89");
}
else
{
if(player.health+20<=player.max_health){
printf("HP+20.");system("color 89");
money-=25;
player.health+=20;
}
else{
printf("HP满了");system("color 89");
player.health=player.max_health;
}
}
break;
case 2:
if(money<80){
printf("钱不够!");system("color 89");
}
else{
if(player.health+50<=player.max_health){
printf("HP+50.");system("color 89");
money-=80;
player.health+=50;
}
else{
printf("HP满了");system("color 89");
player.health=player.max_health;
}
}
break;
case 3:
if(money<150){
printf("钱不够!");system("color 89");
}
else{
if(player.health+100=100&&cao=150&&jijiubao=250&&baiyao=400&&superbaiyao=150){
jingyancao++;
money=money-150;
printf ("经验草+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
case 6:
if(money>=300){
jingyanbao++;
money=money-300;
printf ("经验包+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
case 7:
if(money>=500){
jingyanshi++;
money=money-500;
printf ("经验石+1
");system("color 89");
}
else{
printf("钱不够!
");system("color 89");
}
break;
}
case 0:
printf("金币:%d
",money);system("color 89");
printf("再见,欢迎下次再来!
");system("color 89");
break;
}
if(mai==2){
printf("药品商人:去去去,老子没时间陪你聊。
");system("color 89");
}
}
}
else if(place_sign==place.hotel)
printf("“老板娘!我...”
“我忙着呢,没空理你~”
");
else printf("这里好像没人可以聊天
");system("color 89");
break;
case 4:
DisplayState();
break; //显示状态
case 5: //装备
printf("攻击装备: 1,匕首:%d个 2,西洋剑:%d个 3,粗制石剑:%d个 4,碧血战锤:%d个 5,蜘蛛毒剑:%d个 6,尚方宝剑:%d个 7,雷霆之刃:%d个
",gong1n,gong2n,gong7n,gong3n,gong6n,gong4n,gong5n);system("color 89");
printf("防御装备: 8,布衣:%d个 9,铁甲:%d个 10,战斗马甲:%d个 11,重甲:%d个 12,石铠甲:%d个 13,传说圣甲:%d个 14,金龙铠:%d个		0,返回
",fang1n,fang2n,fang7n,fang3n,fang6n,fang4n,fang5n);system("color 89");
printf("选择要装备的武器或防具:
");system("color 89");
switch(scanf("%d",&choose_number),choose_number){
case 1:
if(gong1n>=1){
printf("拿起了匕首
");system("color 89");
gong=gong1;
strcpy(gongname,"匕首");system("color 89");
}
else printf("你没有匕首可以装备
");system("color 89");
break;
case 2:
if(gong2n>=1){
printf("拿起了西洋剑
");system("color 89");
gong=gong2;
strcpy(gongname,"西洋剑");system("color 89");
}
else printf("你没有西洋剑可以装备
");system("color 89");
break;
case 3:
if(gong7n>=1){
printf("拿起了粗制石剑
");
gong=gong7;
strcpy(gongname,"粗制石剑");
}
else printf("你没有粗制石剑可以装备
");
break;
case 4:
if(gong3n>=1){
printf("拿起了碧血战锤
");
gong=gong3;
strcpy(gongname,"碧血战锤");
}
else printf("你没有碧血战锤可以装备
");
break;
case 5:
if(gong6n>=1){
printf("拿起了蜘蛛毒剑
");
gong=gong6;
strcpy(gongname,"蜘蛛毒剑");
}
else printf("你没有蜘蛛毒剑可以装备
");
break;
case 6:
if(gong4n>=1){
printf("拿起了尚方宝剑
");
gong=gong4;
strcpy(gongname,"尚方宝剑");
}
else printf("你没有尚方宝剑可以装备
");
break;
case 7:
if(gong5n>=1){
printf("拿起了雷霆之刃
");
gong=gong5;
strcpy(gongname,"雷霆之刃");
}
else printf("你没有雷霆之刃可以装备
");
break;
case 8:
if(fang1n>=1){
printf("穿上了布衣
");
fang=fang1;
strcpy(fangname,"布衣");
}
else printf("你没有布衣可以装备
");
break;
case 9:
if(fang2n>=1){
printf("穿上了铁甲
");
fang=fang2;
strcpy(fangname,"铁甲");
}
else printf("你没有铁甲可以装备
");
break;
case 10:
if(fang7n>=1){
printf("穿上了战斗马甲
");
fang=fang7;
strcpy(fangname,"战斗马甲");
}
else printf("你没有战斗马甲可以装备
");
break;
case 11:
if(fang3n>=1){
printf("穿上了重甲
");
fang=fang3;
strcpy(fangname,"重甲");
}
else printf("你没有重甲可以装备
");
break;
case 12:
if(fang6n>=1){
printf("穿上了石铠甲
");
fang=fang6;
strcpy(fangname,"石凯甲");
}
else printf("你没有石凯甲可以装备
");
break;
case 13:
if(fang4n>=1){
printf("穿上了传说圣甲
");
fang=fang4;
strcpy(fangname,"传说圣甲");
}
else printf("你没有传说圣甲可以装备
");
break;
case 14:
if(fang5n>=1){
printf("穿上了金龙铠
");
fang=fang5;
strcpy(fangname,"金龙铠");
}
else printf("你没有金龙铠可以装备
");
break; 
case 0:
printf("未更换装备
");
break;
default:
printf("change error!");
}
break;
case 6:
printf(" 您好,欢迎您玩斗破苍穹(苍穹世界)。为了给您更好的游戏体验,zty时不时会优化本游戏,优化后会尽快发布在网上。关于外挂方面,开启外挂的方式是设定勇者姓名时,输入“zty ”(不包括双引号)。由于2.10.4版本凋零之心和巨龙晶石剩余的buy和凋零宇宙无法刷出凋零共生体的bug,我们在2.10.4的基础上进行修改,已修复该bug。并且修改了部分怪和场景的名称,希望大家喜欢。在这里要感谢吴昊同学,他给了我许多宝贵的建议,谢谢。
");system("color 89");
break;
case 0:
printf("确定退出游戏?(Y/N)
");system("color 89");
getchar();
proof=getchar();
if(proof=='y'||proof=='Y'){
printf("按回车退出");system("color 89");
getchar();
return;
}
else if(proof=='n'||proof=='N')printf("继续游戏!
");
else printf("继续!
");
break;
default:
printf("输入错误!
");
break;
case 7:
int mi;
cout<>mi;
if(mi%20120913==0){
cout<>> "<>htsr;
if(htsr==1){
cout<<"成功获得效果 *金币加9999
";
money+=999999;
}
if(htsr==2){
cout<<"成功获得效果 *血量加9999
";
player.health+=9999;
}
if(htsr==3){
cout<<"成功获得效果 *血量上限加9999
";
player.max_health+=9999;
}
if(htsr==4){
cout<<"成功获得效果 *攻击加9999
";
player.attack+=9999;
}
if(htsr==5){
cout<<"成功获得效果 *防御加9999
";
player.defense+=9999;
}
if(htsr==0){
cout<<"成功退出
";
continue;
}
}
else{
cout<<"输入错误!请检查!"<<endl;
continue;
}
break;
}
}
}
void DisplayState()
{
printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d 
",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
printf("武器: %s 防具: %s 
",gongname,fangname);
printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d 
",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
}
void BattleAct()
{
while(1)
{
puts("=============================================================================");
printf("要怎么办?
1,攻击 2,物品 3,查看状态 4,逃跑
");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
s=SuiJi();
printf("%s攻击! %sHP减少%d
",player.name,guai.name,player.attack+s+gong-guai.defense/3);
guai.health-=player.attack+s+gong-guai.defense/3;
if(AttackResult())return; //如果攻击有结果(敌人或玩家战死)退出函数
else continue;
case 2:
ChooseWupin();
break; //选择物品,可以使用,战斗中允许使用攻击性物品
case 3:
DisplayState();
break; //显示状态
case 4:
s=SuiJi();
if(s<4) //40%的概率可以逃跑
{
printf("%s逃跑了~
",player.name);
battle=0;
return;
}
else printf("%s逃跑失败!
",player.name);
break;
default:
printf("输入错误,重新输入!
");
}
}
}
void printf(char *p)
{
while(1)
{
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(100);
}
} 

本站无任何商业行为
个人在线分享 » [C++] 小游戏 斗破苍穹 2.2.1至2.11.5所有版本(中) zty出品
E-->