编译一个c++代码

#include<stdlib.h>
#include<stdio.h>
#include<time.h> //suiji
#include<string.h>
#include<windows.h> //SLEEP函数
#include <iostream>
#include <fstream>
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};
bool key=false;
int du;
int hold=0,wear=0;
struct Enemy //怪的结构体,并初始化各种怪
{
char name[20];
char wupin[12];
int attack;
int defense;
int health;
long long int money;
long int exp;
int wupin_sign;
int wupinpro;
int double_attack;
int miss;
}strongman={"森林巨人","黄金圣衣",40,50,350,200,100,1,20,1,0},
witch={"森林女巫","银甲",25,15,100,50,50,2,20,1,1},
xiyi={"森林蜥蜴","铁甲",18,10,50,30,35,3,3,20,2},
big_strongman={"森林巨人王","巨人之臂",40*5,50*5,350*5,200*5,100*5,4,40,2,0},
lion={"草原雄狮","绝世好剑",60,30,280,200,100,5,20,1,0},
horse={"草原野马","碧血剑",28,12,90,50,50,6,20,1,1},
bee={"草原黄蜂","长剑",17,11,60,30,35,7,30,2,2},
shitu={"使徒","一把钥匙",60*8,30*8,280*8,200*8,100*8,9,10,1,0},
mouse={"地牢老鼠","大宝剑",100,30,250,200,150,11,20,1,0},
protecter={"地牢护卫","公主",800,300,2800,2000,1100,12,10,1,0},
prinses={"公主","\0",1000,500,10000,5000,3000,0,0,0},
guai={"\0","\0",0,0,0,0,0,0,0,0,0};
struct Place
{
int bar,hotel,forest1,forest2,forest3,grass1,grass2,grass3,dilao1,dilao2,shop,tjp;
}place={1,2,3,4,5,6,7,8,9,10,11,12};


int max_exp=0;
int choose_number=9999999,s=9999999,strongman_arm=9999999,battle=9999999,money=9999999,place_sign=9999999;
int cao=9999999,jijiubao=9999999,baiyao=9999999,superbaiyao=9999999,boom=9999999,dubiao=9999999,atom_boom=9999999;
int fang=9999999,fang1=9999999,fang1n=9999999,fang2=9999999,fang2n=9999999,fang3=9999999,fang3n=9999999,fang4=9999999,fang4n=9999999;
int gong=9999999,gong1=9999999,gong1n=9999999,gong2=9999999,gong2n=9999999,gong3=9999999,gong3n=9999999,gong4=9999999,gong4n=9999999,gong5=9999999,gong5n=9999999;
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 *);
ifstream fin;
ofstream fout;


int main()
{
int ifnew;
SlowDisplay("使用进度(1)还是重新开始?(2) 重新开始你的进度将消失,并不可逆转!");
cin>>ifnew;
switch(ifnew)
{
case 1:fin.open("battle.dat",ios::in);
fin>>player.attack>>player.defense>>player.exp>>player.health>>player.level>>player.max_exp>>player.max_health>>player.name>>player.range_exp;
fin>>fang>>gong>>hold>>wear>>gongname>>fangname;
fin>>fang1n;
fin>>fang1;
fin>>fang2n;
fin>>fang2;
fin>>fang3n;
fin>>fang3;
fin>>fang4n;
fin>>fang4;
fin>>gong1n;
fin>>gong1;
fin>>gong2n;
fin>>gong2;
fin>>gong3n;
fin>>gong3;
fin>>gong4n;
fin>>gong4;
fin>>gong5n;
fin>>gong5;
fin>>strongman_arm>>key;
fin>>atom_boom>>baiyao>>boom>>cao>>dubiao>>jijiubao>>superbaiyao;
fin>>money;
break;
case 2:
system("del battle.dat /q /f");
system("del chapter2 /q /f");
system("del chapter3 /q /f");
break; 
}
int i=0,j=0,k=0;
char player_name[21];


if(ifnew==2){ SlowDisplay("【注意1】不可使用×关闭,否则你的数据将会消失!\n这是一个勇者的世界! 雅莉萨斯国的罗茜公主被陌生人绑架了!\n\n 伟大的勇者啊~拿起你们的武器,营救公主!\n\n\n输入你的名字: (20个字符)\n\n\n");


// sndPlaySound("res\\F005.wav",SND_LOOP);
scanf("%s",player_name);
strncpy(player.name,player_name,20);
if(strcmp(player.name,"老司机")==0)
{
SlowDisplay("吊销驾照多年的 老司机 啊!你终于可以重新开车了!\n\n\n 老司机 重新上路... 随即... 翻车!!!\n\n\n");
player.attack-=9999;
player.defense-=9999;
player.health-=99999;
player.max_health-=99999;
}}
else SlowDisplay("继续!\n");
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个 0,返回\n\n\n",cao,jijiubao,baiyao,superbaiyao,boom,dubiao,atom_boom);
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
if(cao>0)
{
SlowDisplay("使用止血草,HP增加9999999\n\n\n");
if(player.health+9999999>player.max_health)player.health=player.max_health;
else player.health+=9999999;
cao--; 
}
else SlowDisplay("没有止血草了\n\n\n");
break;
case 2:
if(jijiubao>0)
{
SlowDisplay("使用急救包,HP增加9999999\n\n\n");
if(player.health+9999999>player.max_health)player.health=player.max_health;
else player.health+=9999999;
jijiubao--;
}
else SlowDisplay("没有急救包了\n\n\n");
break;
case 3:
if(baiyao>0)
{
SlowDisplay("使用云南白药,HP增加9999999\n\n\n");
if(player.health+9999999>player.max_health)player.health=player.max_health;
else player.health+=9999999;
baiyao--;
}
else SlowDisplay("没有云南白药了\n\n\n");
break;
case 4:
if(superbaiyao>0)
{
SlowDisplay("使用超级云南白药,HP增加9999999\n\n\n");
if(player.health+9999999>player.max_health)player.health=player.max_health;
else player.health+=9999999;
superbaiyao--;
}
else SlowDisplay("没有超级云南白药了\n\n\n");
break;
case 5:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(boom>0)
{
SlowDisplay("使用手雷,敌人HP减少10000\n\n\n");
guai.health-=10000;
boom--;
AttackResult();
}
}
else SlowDisplay("非战斗状态,不能使用手雷!\n\n\n");
break;
case 6:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(dubiao>0)
{
SlowDisplay("使用毒标,敌人HP减少100000敌人中毒! 每回合HP减少10000\n\n\n");
guai.health-=100000;
dubiao--;
du+=10000; 
AttackResult();
}
}
else SlowDisplay("非战斗状态,不能使用毒标!\n\n\n");
break;
case 7:
if(battle) //在战斗中(battle=1),否则(battle=0)不能使用攻击性物品
{
if(atom_boom>0)
{
SlowDisplay("使用手抛式原子弹,敌人HP减少10000000000 放射性!敌人每回合HP减少100000000\n\n\n");
guai.health-=10000000000;
atom_boom--;
du+=100000000;
AttackResult();
}
}
else SlowDisplay("非战斗状态,不能使用手抛式原子弹!\n\n\n");
break;
case 0:break;
default:printf("ChooseWupin error!\n\n\n");
}
}
int AttackResult() //攻击结果:判断是否获胜 是否获得物品 和 是否升级
{
if(guai.health<=0)
{
du=0;
battle=0;
printf("战斗胜利!获得金币%d,经验%d\n\n\n",guai.money,guai.exp);
player.exp+=guai.exp;
player.range_exp+=guai.exp;
money+=guai.money;
s=-10;
if(s<guai.wupinpro)
{
if(strcmp(guai.name,"使徒")==0) SlowDisplay("我说……我说……她在…… 地牢 里,拿着,这是钥匙……");
if(strcmp(guai.name,"公主")==0) {SlowDisplay("你知道吗?【流泪】在雅莉萨斯国中,一股邪气正在污染着整个王国,才逃到这里……");
SlowDisplay("第一章 《解救公主》结束 第二章《征程》解锁");
fout.open("chapter2",ios::out);
fout<<" "<<1; 
fout.close();
fout.open("battle.dat",ios::out);
fout<<" "<<player.attack<<" "<<player.defense<<" "<<player.exp<<" "<<player.health<<" "<<player.level<<" "<<player.max_exp<<" "<<player.max_health<<" "<<player.name<<" "<<player.range_exp;
fout<<" "<<fang<<" "<<gong<<" "<<hold<<" "<<wear<<" "<<gongname<<" "<<fangname;
fout<<" "<<fang1n;
fout<<" "<<fang1;
fout<<" "<<fang2n;
fout<<" "<<fang2;
fout<<" "<<fang3n;
fout<<" "<<fang3;
fout<<" "<<fang4n;
fout<<" "<<fang4;
fout<<" "<<gong1n;
fout<<" "<<gong1;
fout<<" "<<gong2n;
fout<<" "<<gong2;
fout<<" "<<gong3n;
fout<<" "<<gong3;
fout<<" "<<gong4n;
fout<<" "<<gong4;
fout<<" "<<gong5n;
fout<<" "<<gong5;
fout<<" "<<strongman_arm<<" "<<key;
fout<<" "<<atom_boom<<" "<<baiyao<<" "<<boom<<" "<<cao<<" "<<dubiao<<" "<<jijiubao<<" "<<superbaiyao;
fout<<" "<<money;
getchar();
getchar();


exit(0);
} 
SlowDisplay("从敌人尸骸中发现");
printf("%s\n\n\n",guai.wupin);
AddWupin(guai.wupin_sign);
}
WhetherLevelUp();
if(strcmp(guai.name,"地牢护卫")==0)
{
puts("战斗胜利,救出公主!!!");
}
return 1; //攻击有结果了返回1,否则返回0,用于判断是否继续做战斗行为
}
else
{
int s=SuiJi();




if((guai.attack+s-(player.defense+fang)/3)<0)
{
player.health-=1;
printf("%s反击,你的HP减少了 1\n\n",guai.name);
}
else
{
player.health-=guai.attack+s-(player.defense+fang)/3;
printf("%s反击,你的HP减少了%d\n\n",guai.name,guai.attack+s-(player.defense+fang)/3);
}
if(player.health>=player.max_health/2) system("color 07");
if(player.health<player.max_health/2) system("color 0e");
if(player.health<player.max_health/3) system("color 06");
if(player.health<player.max_health/4) system("color 0c");
if(player.health<player.max_health/6) system("color 04");
if(player.health<0)
{
du=0;
battle=0;
printf("%s战死!",player.name);
if(money>=player.level*100) printf("使用%d金币贿赂裁判,复活!\n\n\n",player.level*100);
else 
{
printf("你穷到死都死不起了!裁判看你没钱,嫌你可怜,就把你的少的可怜的钱全收了");
money=0; 
} 
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=1;break;
case 5:gong4n++; break;
case 6:gong3n++; break;
case 7:gong2n++; break;
case 9:key=true;break;
case 11:gong5n++;break;
case 12:
guai=prinses;
battle=1;
SlowDisplay("公主:勇士,你够厉害的呀,居然一路打到了这里!");
printf("公主扑了过来!");
printf("%s",player.name);
SlowDisplay(":???"); 
BattleAct();
break;
default:printf("AddWupin error\n\n\n");
}


}
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.level<=15&&l1>0) //15级以下,经验足够 都满足则升级
{
if(l1==1)
{
printf("%s",player.name);
SlowDisplay(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
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;
system("color 07");
}
else
{
printf("好厉害!连升%d级!",l1);
printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l1,2*l1,20*l1);
player.exp=player.exp+guai.exp-(player.exp+guai.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;
system("color 07");
}
}
else if(player.level<=40&&l2>0)
{
if(l2==1)
{
printf("%s",player.name);
SlowDisplay(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
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;
system("color 07");
}
else
{
printf("好厉害!连升%d级!",l1);
printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l2,2*l2,20*l2);
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;
system("color 07");
}
}
else if(l3>0)
{
if(l3==1)
{
printf("%s",player.name);
SlowDisplay(" 升级!\n\n\n攻击力+3, 防御力+2, HP上限+20\n\n\n");
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;
system("color 07");
}
else
{
printf("好厉害!连升%d级!",l1);
printf("攻击力+%d, 防御力+%d, HP上限+%d\n\n\n",3*l3,2*l3,20*l3);
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;
system("color 07");
}
}
}
void OrdinaryAct() //正常行为菜单(移动,物品,对话,查看状态,装备,退出游戏)
{


while(1)
{
// \(1000);
// system("cls");


puts("=============================================================================");
printf("要做什么?\n\n\n 1,移动 2,道具 3,对话 4,查看状态 5,装备 0,退出游戏\n\n\n");
puts("=============================================================================");
switch(scanf("%d",&choose_number),choose_number)
{
case 1: //显示移动菜单
SlowDisplay("要去哪里?\n\n\n");
printf("1,酒吧 2,旅馆 3,森林一层 4,森林二层 5,森林三层 6,草原一层 7,草原二层 8,草原三层 9,地牢一层 10,地牢二层 11,商店 12,铁匠铺\n\n\n");
switch(scanf("%d",&choose_number),choose_number)
{
case 12:
SlowDisplay("1,锻造 2,售卖");
int choise;
scanf("%d",&choise);
switch(choise)
{
case 1:
SlowDisplay("选择锻造装备:");
printf("攻装: 1,匕首:%d个 2,长剑:%d个 3,碧血剑:%d个 4,绝世好剑:%d个 5,大宝剑\n\n\n",gong1n,gong2n,gong3n,gong4n,gong5n);
printf("防装: 6,布衣:%d个 7,铁甲:%d个 8,银甲:%d个 9,黄金圣衣:%d个\t\t0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n);
printf("选择要锻造的武器或防具以及锻造次数:(30个金币/次) 你有%d个\n\n\n",money);
int cishu;
scanf("%d%d",&choose_number,&cishu);
if(money<30*cishu) {printf("你没钱瞎嘚瑟啥!");break;}
money-=30*cishu;
switch(choose_number)
{
case 1:if(gong1n>=1)
{
SlowDisplay("锻造了匕首\n\n\n");
gong1+=1*cishu;
if(hold==1) gong+=1*cishu;
strcpy(gongname,"匕首");
}
else SlowDisplay("你没有匕首可以锻造\n\n\n");
break;
case 2:if(gong2n>=1)
{
SlowDisplay("锻造了长剑\n\n\n");
gong2+=3*cishu;
if(hold==2) gong+=3*cishu;
strcpy(gongname,"长剑");
}
else SlowDisplay("你没有长剑可以锻造\n\n\n");
break;
case 3:if(gong3n>=1)
{
SlowDisplay("锻造了碧血剑\n\n\n");
gong3+=5*cishu;
if(hold==3) gong+=5*cishu;
strcpy(gongname,"碧血剑");
}
else SlowDisplay("你没有碧血剑可以锻造\n\n\n");
break;
case 4:if(gong4n>=1)
{
SlowDisplay("锻造了绝世好剑\n\n\n");
gong4+=10*cishu;
if(hold==4) gong+=10*cishu;
strcpy(gongname,"绝世好剑");
}
else SlowDisplay("你没有绝世好剑可以锻造\n\n\n");
break;
case 6:if(fang1n>=1)
{
SlowDisplay("锻造了布衣\n\n\n");
fang1+=2*cishu;
if(wear==1) fang+=2*cishu;
strcpy(fangname,"布衣");
}
else SlowDisplay("你没有布衣可以锻造\n\n\n");
break;
case 7:if(fang2>=1)
{
SlowDisplay("锻造了铁甲\n\n\n");
fang2+=4*cishu;
if(wear==2) fang+=4*cishu;


strcpy(fangname,"铁甲");
}
else SlowDisplay("你没有铁甲可以锻造\n\n\n");
break;
case 8:if(fang3n>=1)
{
SlowDisplay("锻造了银甲\n\n\n");
fang3+=8*cishu;
if(wear==3) fang+=8*cishu;


strcpy(fangname,"银甲");
}
else SlowDisplay("你没有银甲可以锻造\n\n\n");
break;
case 9:if(fang4n>=1)
{
SlowDisplay("锻造了黄金圣衣\n\n\n");
fang4+=15*cishu;
if(wear==4) fang+=15*cishu;


strcpy(fangname,"黄金圣衣");
}
else SlowDisplay("你没有黄金圣衣可以锻造\n\n\n");
break;
case 0:{SlowDisplay("未锻造\n\n\n");money+=30*cishu;break;}
case 5:if(gong5n>=1)
{
SlowDisplay("锻造了大宝剑\n\n\n");
gong5+=15*cishu;
if(hold==5) gong+=15*cishu;
strcpy(gongname,"大宝剑");
}
default:{printf("change error!");money+=30;}
}
break;
case 2:
SlowDisplay("1:匕首 10$ 2:长剑 30$ 3:碧血剑 50$ 4:绝世好剑 80$ 5:大宝剑 120$ 6:布衣 5$ 7:铁甲 15$ 8:银甲 35$ 9:黄金圣衣 60$");
scanf("%d",&choose_number);
switch(choose_number)
{
case 1:if(gong1n>=1)
{
SlowDisplay("出售了匕首\n\n\n");
gong1n--;
money+=10;
}
else SlowDisplay("你没有匕首可以出售\n\n\n");
break;
case 2:if(gong2n>=1)
{
SlowDisplay("出售了长剑\n\n\n");
gong2n--;
money+=30;


}
else SlowDisplay("你没有长剑可以出售\n\n\n");
break;
case 3:if(gong3n>=1)
{
SlowDisplay("出售了碧血剑\n\n\n");
gong3n--;
money+=50;


}
else SlowDisplay("你没有碧血剑可以出售\n\n\n");
break;
case 4:if(gong4n>=1)
{
SlowDisplay("出售了绝世好剑\n\n\n");
gong4n--;
money+=80;


}
else SlowDisplay("你没有绝世好剑可以出售\n\n\n");
break;
case 6:if(fang1n>=1)
{
SlowDisplay("出售了布衣\n\n\n");
fang1n--;
money+=5;


}
else SlowDisplay("你没有布衣可以出售\n\n\n");
break;
case 7:if(fang2>=1)
{
SlowDisplay("出售了铁甲\n\n\n");
fang2n--;
money+=15;


}
else SlowDisplay("你没有铁甲可以出售\n\n\n");
break;
case 8:if(fang3n>=1)
{
SlowDisplay("出售了银甲\n\n\n");
fang3n--;
money+=35;


}
else SlowDisplay("你没有银甲可以出售\n\n\n");
break;
case 9:if(fang4n>=1)
{
SlowDisplay("出售了黄金圣衣\n\n\n");
fang4n--;
money+=60;


}
else SlowDisplay("你没有黄金圣衣可以出售\n\n\n");
break;
case 0:{SlowDisplay("未出售\n\n\n");money+=30*cishu;break;}
case 5:if(gong5n>=1)
{
SlowDisplay("出售了大宝剑\n\n\n");
gong5n--;
money+=120;
}


}
} 
break;


case 11:
{
printf("1、止血草:1\n2、急救包:1\n3、云南白药:1\n4、超级云南白药:1\n5、手雷:1\n6、毒镖:1\n7、手抛式原子弹:1\n0、退出 你有%d$",money);
int buy;
scanf("%d",&buy);
switch(buy)
{
case 0:break;
case 1:
if(money>=1)
{
money-=1;
cao++;
SlowDisplay("交易成功!");
}
else {SlowDisplay("由于你买不起,你穷到肌肉萎缩!攻击力清零");
player.attack=0;}
break;
case 2:
if(money>=1)
{
money-=1;
jijiubao++;
SlowDisplay("交易成功!");
}
else {SlowDisplay("由于你买不起,你穷到肌肉萎缩!攻击力清零");
player.attack=0;}
break;
case 3:
if(money>=1)
{
money-=1;
baiyao++;
SlowDisplay("交易成功!");
}
else {SlowDisplay("由于你买不起,你穷到肌肉萎缩!攻击力清零");
player.attack=0;}
break;
case 4:
if(money>=1)
{
money-=1;
superbaiyao++;
SlowDisplay("交易成功!");
}
else {SlowDisplay("由于你买不起,你穷到肌肉萎缩!攻击力清零");
player.attack=0;}
break;
case 5:
if(money>=1)
{
money-=1;
boom++;
SlowDisplay("交易成功!");
}
else {SlowDisplay("由于你买不起,你穷到肌肉萎缩!攻击力清零");
player.attack=0;}
break;
case 6:
if(money>=1)
{
money-=1;
dubiao++;
SlowDisplay("交易成功!");
}
else {SlowDisplay("由于你买不起,你穷到肌肉萎缩!攻击力清零");
player.attack=0;}
break;
case 7:
if(money>=1)
{
money-=1;
atom_boom++;
SlowDisplay("交易成功!");
}
else {SlowDisplay("由于你买不起,你穷到肌肉萎缩!攻击力清零");
player.attack=0;}
break;
}
}
case 1:place_sign=place.bar; //记录目前位置-酒吧
// OrdinaryAct();
break;
case 2:place_sign=place.hotel; //进入旅店
SlowDisplay("要住店吗? 1个金币 1,是 0,否\n\n\n");
choose_number=1;
switch(scanf("%d",&choose_number),choose_number)
{
case 1:if(money-1<0) //判断钱是否够
{
SlowDisplay("Sorry,你的钱不够~\n\n\n");
}
else
{
SlowDisplay("好好休息\n\tHP满\n\t\t第二天了\n\n");
money-=1; //花费200住店费
player.health=player.max_health; //体力满
}
break;
case 0:SlowDisplay("下次再来!\n\n\n");break;
default:printf("hotel talk error!\n\n\n");
}
place_sign=0;
break;
case 3:
place_sign=place.forest1;
s=SuiJi();
if(s<7)
{
battle=1;
guai=xiyi;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=witch;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else
{
SlowDisplay("这里安全\n\n\n");
//不用调用OAct函数,会自动执行OAct函数;
}
break;
case 4:
place_sign=place.forest2;
s=SuiJi();
if(s<7)
{
battle=1;
guai=witch;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=strongman;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else
{
SlowDisplay("这里安全\n\n\n");
}
break;
case 5:
place_sign=place.forest3;
s=SuiJi();
if(s<7)
{
battle=1;
guai=strongman;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=big_strongman;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else
{
SlowDisplay("这里安全\n\n\n");
}
break;
case 6:
place_sign=place.grass1;
s=SuiJi();
if(s<7)
{
battle=1;
guai=bee;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=horse;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else
{
SlowDisplay("这里安全\n\n\n");
}
break;
case 7:
place_sign=place.grass2;
s=SuiJi();
if(s<7)
{
battle=1;
guai=horse;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
guai=lion;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else
{
SlowDisplay("这里安全\n\n\n");
}
break;
case 8:
place_sign=place.grass3;
s=SuiJi();
if(s<7)
{
battle=1;
guai=lion;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else if(s<9)
{
battle=1;
if(strongman_arm)
{
SlowDisplay("神秘老人:\n\n\n 哈哈,年轻人,做的不错,不过...嘿嘿,你上当啦!巨人之臂我要了,公主你也别想带走!\n\n\n");
guai=shitu;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
}
else SlowDisplay("神秘老人:\n\n\n 年轻人,你好啊.如果你有巨人之臂,我可以告诉你公主的下落哦~ 巨人之臂由 【森林三层】 的 【森林巨人王】 掉落\n\n\n");
}
else
{
SlowDisplay("这里安全\n\n\n");
}
break;
case 9:
if(!key) {printf("门被锁了,打不开");break;}
if(SuiJi()<8) {battle=1;
guai=mouse;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();}
else cout<<"这里安全";
break;


case 10:
if(!key) {printf("门被锁了,打不开");break;}
battle=1;
SlowDisplay("地牢守卫:你怎能擅自闯入这里!你不得好死!");
guai=protecter;
printf("%s扑了过来!\n\n\n",guai.name);
BattleAct();
break;


default:printf("choose map error!\n\n\n");
}
break;
case 2: ChooseWupin();break; //显示道具,并可以使用.
case 3: //对话选项
if(place_sign==place.bar)
{
SlowDisplay("要和谁说话?\n\n\n1,红发女郎 2,赏金猎人 3,酒吧老板 4,你自己\n\n\n"); //显示对话人物
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
SlowDisplay("红发女郎:\n\n\n 吧台边那个Hunter好帅啊!(~脸红~)\n\n\n听说他经常外出打猎,外面的路他应该很熟悉的!\n\n\n");
break;
case 2:
if(fang1n<1&&gong1n<1)
{
SlowDisplay("赏金猎人:\n\n\n 你要救公主啊!好胆量!\n\n\n 不过外面的丛林和草原很险恶,而且越深越危险,这是匕首和布衣,对你会有些帮助的,拿去吧!\n\n\n");
printf("%s心想:(哇,这位大叔人真好啊!\n\n\n)",player.name);
gong1n++;
fang1n++;
}
else SlowDisplay("赏金猎人:\n\n\n 加油吧,年轻人!\n\n\n 不要被外面丛林和草原所吓倒!\n\n\n");
break;
case 3:
printf("要喝点什么?\n\n\n 1,二锅头25金币 HP+20 2,XO酒80金币 HP+50 3,人头马面150金币 HP+100 0,返回\n\n\n");
choose_number=1;
while(choose_number)
{
switch(scanf("%d",&choose_number),choose_number)
{
case 1:if(money<25)
{
SlowDisplay("钱不够!");
}
else
{
if(player.health+20<=player.max_health)
{
SlowDisplay("HP+20.");
money-=25;
player.health+=20;
}
else
{
SlowDisplay("HP满了");
player.health=player.max_health;
}
}
break;
case 2:if(money<80)
{
SlowDisplay("钱不够!");
}
else
{
if(player.health+50<=player.max_health)
{
SlowDisplay("HP+50.");
money-=80;
player.health+=50;
}
else
{
SlowDisplay("HP满了");
player.health=player.max_health;
}
}
break;
case 3:if(money<150)
{
SlowDisplay("钱不够!");
}
else
{
if(player.health+100<=player.max_health)
{
SlowDisplay("HP+100.");
money-=150;
player.health+=100;
}
else
{
SlowDisplay("HP满了");
player.health=player.max_health;
}
}
break;
case 0:SlowDisplay("下次在来!\n");break;
default:SlowDisplay("输入错误\n\n\n");
}
}
break; 
case 4:
char word[200];
cin>>word;
if(word[0]=='$'&&word[1]=='+') {int add;cin>>add;money+=add;}
}
}
else if(place_sign==place.hotel)
SlowDisplay("“老板娘!我...”\n\n\n“我忙着呢,没空理你~”\n\n\n");
else SlowDisplay("这里好像没人可以聊天\n\n\n");
break;
case 4: DisplayState(); break; //显示状态
case 5: //装备
printf("攻装: 1,匕首:%d个 2,长剑:%d个 3,碧血剑:%d个 4,绝世好剑:%d个 5,大宝剑\n\n\n",gong1n,gong2n,gong3n,gong4n,gong5n);
printf("防装: 6,布衣:%d个 7,铁甲:%d个 8,银甲:%d个 9,黄金圣衣:%d个\t\t0,返回\n\n\n",fang1n,fang2n,fang3n,fang4n);
SlowDisplay("选择要装备的武器或防具:\n\n\n");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:if(gong1n>=1)
{
SlowDisplay("拿起了匕首\n\n\n");
gong=gong1;
hold=1;
strcpy(gongname,"匕首");
}
else SlowDisplay("你没有匕首可以装备\n\n\n");
break;
case 2:if(gong2n>=1)
{
SlowDisplay("拿起了长剑\n\n\n");
gong=gong2;
hold=2;
strcpy(gongname,"长剑");
}
else SlowDisplay("你没有长剑可以装备\n\n\n");
break;
case 3:if(gong3n>=1)
{
SlowDisplay("拿起了碧血剑\n\n\n");
gong=gong3;
hold=3;
strcpy(gongname,"碧血剑");
}
else SlowDisplay("你没有碧血剑可以装备\n\n\n");
break;
case 4:if(gong4n>=1)
{
SlowDisplay("拿起了绝世好剑\n\n\n");
gong=gong4;
hold=4;
strcpy(gongname,"绝世好剑");
}
else SlowDisplay("你没有绝世好剑可以装备\n\n\n");
break;
case 6:if(fang1n>=1)
{
SlowDisplay("穿上了布衣\n\n\n");
fang=fang1;
wear=1;
strcpy(fangname,"布衣");
}
else SlowDisplay("你没有布衣可以装备\n\n\n");
break;
case 7:if(fang2>=1)
{
SlowDisplay("穿上了铁甲\n\n\n");
fang=fang2;
wear=2;
strcpy(fangname,"铁甲");
}
else SlowDisplay("你没有铁甲可以装备\n\n\n");
break;
case 8:if(fang3n>=1)
{
SlowDisplay("穿上了银甲\n\n\n");
fang=fang3;
wear=3;
strcpy(fangname,"银甲");
}
else SlowDisplay("你没有银甲可以装备\n\n\n");
break;
case 9:if(fang4n>=1)
{
SlowDisplay("穿上了黄金圣衣\n\n\n");
fang=fang4;
wear=4;
strcpy(fangname,"黄金圣衣");
}
else SlowDisplay("你没有黄金圣衣可以装备\n\n\n");
break;
case 0:SlowDisplay("未更换装备\n\n\n");break;
case 5:if(gong5n>=1)
{
SlowDisplay("拿起了大宝剑\n\n\n");
gong=gong5;
hold=5;
strcpy(gongname,"大宝剑");
}
default:printf("change error!");
}
break;
case 0:
SlowDisplay("确定推出游戏?(Y/N)\n\n\n");
getchar();
proof=getchar();
if(proof=='y'||proof=='Y')
{
SlowDisplay("数据存储中...");
fout.open("battle.dat",ios::out);
fout.open("battle.dat",ios::out);
fout<<" "<<player.attack<<" "<<player.defense<<" "<<player.exp<<" "<<player.health<<" "<<player.level<<" "<<player.max_exp<<" "<<player.max_health<<" "<<player.name<<" "<<player.range_exp;
fout<<" "<<fang<<" "<<gong<<" "<<hold<<" "<<wear<<" "<<gongname<<" "<<fangname;
fout<<" "<<fang1n;
fout<<" "<<fang1;
fout<<" "<<fang2n;
fout<<" "<<fang2;
fout<<" "<<fang3n;
fout<<" "<<fang3;
fout<<" "<<fang4n;
fout<<" "<<fang4;
fout<<" "<<gong1n;
fout<<" "<<gong1;
fout<<" "<<gong2n;
fout<<" "<<gong2;
fout<<" "<<gong3n;
fout<<" "<<gong3;
fout<<" "<<gong4n;
fout<<" "<<gong4;
fout<<" "<<gong5n;
fout<<" "<<gong5;
fout<<" "<<strongman_arm<<" "<<key;
fout<<" "<<atom_boom<<" "<<baiyao<<" "<<boom<<" "<<cao<<" "<<dubiao<<" "<<jijiubao<<" "<<superbaiyao;
fout<<" "<<money;


//向文件中更新数据;
getchar();
SlowDisplay("按回车退出");
getchar();
return;
}
else if(proof=='n'||proof=='N')printf("继续游戏!\n\n\n");
else SlowDisplay("继续!\n\n\n");
break;
default:SlowDisplay("输入错误!\n\n\n");
}
}
}
void DisplayState()
{
printf("%s 攻击力:%d+%d=%d 防御力:%d+%d=%d HP:%d/%d \n\n\n",player.name,player.attack,gong,player.attack+gong,player.defense,fang,player.defense+fang,player.health,player.max_health);
printf("武器: %s 防具: %s \n\n\n",gongname,fangname);
printf("等级:%d 经验:%d/%d 还需要%d经验升级 金币:%d \n\n\n",player.level,player.exp,player.max_exp,player.max_exp-player.exp,money);
}
void BattleAct()
{
while(1)
{
puts("=============================================================================");
if(du>0) printf("敌人中毒!HP-%d 剩余%d",du,guai.health);
guai.health-=du;
printf("要怎么办?\n\n\n 1,攻击 2,物品 3,查看状态 4,逃跑\n\n\n");
switch(scanf("%d",&choose_number),choose_number)
{
case 1:
s=SuiJi();
printf("%s攻击! %sHP减少%d %s剩余血量:%d\n\n\n",player.name,guai.name,player.attack+s+gong-guai.defense/3,guai.name,guai.health-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逃跑了~\n\n\n",player.name);
battle=0;
return;
}
else printf("%s逃跑失败!\n\n\n",player.name);
break;
default:SlowDisplay("输入错误,重新输入!\n\n\n");
}
}
}
void SlowDisplay(char *p)
{
while(1)
{
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(50);
}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值