#include"iostream"
#include"cstdlib"
#include"ctime"
#define gongji(a,b) a*1.5-b
using namespace std;
struct guaiwu{
float xueliang;
short gongjili,fangyuli,tongji,gongjile;
bool youmeiyoutongji;
}guaiwua[725];
int money=100,xiaozhenshu=1,gongjili=20,fangyuli=15,shengming=5,guaiwushu=0;
float xueliang=100;
void shangdian(){
cout<<"欢迎光临商店!\n请问你需要干什么?1.购买 2.退出\n";
short b;
cin>>b;
if(b!=2){
shangdiangoumai:
cout<<"请输入要购买的东西。\n1.1级伤药(30M25HP)\n2.2级伤药(75M80HP)\n3.3级伤药(150M200HP)"
<<"\n4.刀(50M15G)\n5.剑(100M30G)\n6.枪(150M65G)\n7.光之剑(500M500G)\n8.盾牌(40M15F)\n9.铁"<<
"质盔甲(130M100F)\n10.光环(400M300F)\n11.退出\n";
cin>>b;
if(b!=11){
switch(b){
case 1:
if(money<30){
cout<<"钱不够\n";
break;
}else{
cout<<"购买成功!\n";
money-=30;
xueliang+=25;
break;
}
case 2:
if(money<75){
cout<<"钱不够\n";
break;
}else{
cout<<"购买成功!\n";
money-=75;
xueliang+=80;
break;
}
case 3:
if(money<150){
cout<<"钱不够\n";
break;
}else{
cout<<"购买成功!\n";
money-=150;
xueliang+=200;
break;
}
case 4:
if(money<50){
cout<<"钱不够\n";
break;
}else{
cout<<"购买成功!\n";
money-=50;
gongjili+=15;
break;
}
case 5:
if(money<100){
cout<<"钱不够\n";
break;
}else{
cout<<"购买成功!\n";
money-=100;
gongjili+=30;
break;
}
case 6:
if(money<150){
cout<<"钱不够\n";
break;
}else{
cout<<"购买成功!\n";
money-=150;
gongjili+=65;
break;
}
case 7:
if(money<500){
cout<<"钱不够\n";
break;
}else{
cout<<"购买成功!\n";
money-=300;
gongjili+=500;
break;
}
case 8:
if(money<40){
cout<<"钱不够\n";
break;
}else{
cout<<"购买成功!\n";
money-=40;
fangyuli+=15;
break;
}
case 9:
if(money<130){
cout<<"钱不够\n";
break;
}else{
cout<<"购买成功!\n";
money-=80;
fangyuli+=100;
break;
}
case 10:
if(money<400){
cout<<"钱不够\n";
break;
}else{
cout<<"购买成功!\n";
money-=400;
fangyuli+=300;
break;
}
default:
cout<<"请不要乱选!\n";
break;
}
cout<<"1.继续\n2.退出\n";
cin>>b;
cout<<"-----------------------------------\n";
if(b==1){
goto shangdiangoumai;
}
}
}
}
void daoguan(){
cout<<"欢迎光临道馆!\n你要修练吗?\n1.修练(50Mxiaozhenshu*100HP10G10F)\n2.退出\n";
short b;
cin>>b;
cout<<"-----------------------------------\n";
if(b==1){
cout<<"你确定?\n1.修练(300M100HP10G10F)\n2.退出\n";
cin>>b;
cout<<"-----------------------------------\n";
if(b==1){
if(money<300){
cout<<"钱不够!\n";
return;
}
money-=300;
cout<<"正在修炼中……\n";
cin.get();
cin.get();
cout<<"修炼完毕!\n";
xueliang+=xiaozhenshu*50;
gongjili+=xiaozhenshu*10;
fangyuli+=xiaozhenshu*10;
}
}
}
void daguai(){
bool taopao=false,youmeiyoutongji=false;
guaiwua[guaiwushu].gongjili=xiaozhenshu*15;
guaiwua[guaiwushu].fangyuli=xiaozhenshu*15;
guaiwua[guaiwushu].xueliang=xiaozhenshu*40;
cout<<"怪物来袭!\n1.攻击\n2.逃跑\n";
srand(time(0));
short b,huihe=1,gongjile,tongji=0;
cin>>b;
cout<<"-----------------------------------\n";
do{
cout<<"现在是第"<<huihe<<"回合!\n";
switch(b){
case 1:
if(rand()%100+1<xiaozhenshu*10) youmeiyoutongji=true;
if(youmeiyoutongji){
tongji=gongji(gongjili,guaiwua[guaiwushu].fangyuli);
cout<<"你暴走了,打掉他"<<tongji<<"点血!!\n";
youmeiyoutongji=false;
}
gongjile=gongji(gongjili,guaiwua[guaiwushu].fangyuli);
cout<<"你打掉了他"<<gongjile<<"点血!\n";
guaiwua[guaiwushu].xueliang-=(tongji+gongjile);
tongji=0;
cout<<"他还剩"<<guaiwua[guaiwushu].xueliang<<"点血!\n";
break;
case 2:
cout<<"你决定逃跑!\n";
if(rand()%100+1<100/xiaozhenshu){
taopao=true;
}
goto taopaoa;
default:
cout<<"请不要乱选!\n";
break;
}
if(!(guaiwua[guaiwushu].xueliang>0&&xueliang>0)){
goto taopaoa;
}
jixu:
cout<<"怪物开始攻击!\n";
if(rand()%100+1<xiaozhenshu*5){
guaiwua[guaiwushu].youmeiyoutongji=true;
}if(guaiwua[guaiwushu].youmeiyoutongji){
cout<<"怪物打出了痛击!\n";
guaiwua[guaiwushu].tongji=gongji(guaiwua[guaiwushu].gongjili,fangyuli);
cout<<"怪物打掉了你"<<guaiwua[guaiwushu].tongji<<"点血!\n";
guaiwua[guaiwushu].youmeiyoutongji=false;
}
guaiwua[guaiwushu].gongjile=gongji(guaiwua[guaiwushu].gongjili,fangyuli);
cout<<"怪物打掉了你"<<guaiwua[guaiwushu].gongjile<<"点血!\n";
xueliang-=(guaiwua[guaiwushu].gongjile+guaiwua[guaiwushu].tongji);
cout<<"你还剩"<<xueliang<<"点血!\n";
huihe++;
if(!(guaiwua[guaiwushu].xueliang>0&&xueliang>0)){
goto taopaoa;
}
cout<<"1.攻击\n2.逃跑\n";
cin>>b;
cout<<"-----------------------------------\n";
}while(guaiwua[guaiwushu].xueliang>0&&xueliang>0&&b!=2);
taopaoa:
if(b==2&&taopao){
cout<<"逃跑成功!\n";
}else if(b==2){
cout<<"逃跑失败!\n";
goto jixu;
}
if(xueliang<=0){
cout<<"你死了!\n";
shengming--;
xueliang=100;
}if(guaiwua[guaiwushu].xueliang<=0){
cout<<"你打死了他!太厉害了!\n";
money+=xiaozhenshu*3;
}
guaiwushu++;
}
int main(){
int xuanze;
cout<<"欢迎来到游戏!\n";
srand(time(0));
while(1){
cout<<"你要在第"<<xiaozhenshu<<"个小镇做什么?\n1.买东西\n2.修练\n3."
<<"打怪\n4.散步\n5.查看你的状态\n6.退出\n7.清屏\n";
cin>>xuanze;
switch(xuanze){
case 1:
shangdian(); break;
case 2:
daoguan(); break;
case 3:
daguai(); break;
case 4:
cout<<"你去散步了。\n";
short a;
a=rand()%6+5;
cout<<"恢复了"<<a<<"点血。\n现在有"<<xueliang+a<<"点血。\n";
xueliang+=a; break;
case 5:
cout<<"-----------------------------------\n";
cout<<"你有"<<xueliang<<"点血。\n你有"<<gongjili<<"点攻击力。\n你有"<<fangyuli
<<"点防御力。\n你有"<<money<<"块钱。\n你打死了"<<guaiwushu<<"只怪物。\n"; break;
case 6:
cout<<"正在退出游戏……\n";
cin.get();
cin.get();
return 0;
case 7:
system("cls");
break;
default:
cout<<"请不要乱选!\n";
break;
}
cout<<"-----------------------------------\n";
if(guaiwushu==50){
cout<<"你去了下一个小镇。\n";
xiaozhenshu++;
cout<<"必须要考验!\n";
daguai();
}if(guaiwushu==100){
cout<<"你去了下一个小镇。\n";
xiaozhenshu++;
cout<<"必须要考验!\n";
daguai();
}if(guaiwushu==150){
cout<<"你去了下一个小镇。\n";
xiaozhenshu++;
cout<<"必须要考验!\n";
daguai();
}if(guaiwushu==200){
cout<<"你去了下一个小镇。\n";
xiaozhenshu++;
cout<<"必须要考验!\n";
daguai();
}if(guaiwushu==250){
cout<<"你去了下一个小镇。\n";
xiaozhenshu++;
cout<<"必须要考验!\n";
daguai();
}if(guaiwushu==300){
cout<<"你去了下一个小镇。\n";
xiaozhenshu++;
cout<<"必须要考验!\n";
daguai();
}if(guaiwushu==400){
cout<<"你去了下一个小镇。\n";
xiaozhenshu++;
cout<<"必须要考验!\n";
daguai();
}if(guaiwushu==500){
cout<<"你去了下一个小镇。\n";
xiaozhenshu++;
cout<<"必须要考验!\n";
daguai();
}if(guaiwushu==600){
cout<<"你去了下一个小镇。\n";
xiaozhenshu++;
cout<<"必须要考验!\n";
daguai();
}if(guaiwushu==700){
cout<<"你去了下一个小镇。\n";
xiaozhenshu++;
cout<<"必须要考验!\n";
daguai();
}if(xiaozhenshu==11){
cout<<"恭喜通关!\n";
cin.get();
cin.get();
return 0;
}
if(shengming==0){
cout<<"你死了!\n";
cin.get();
cin.get();
return 0;
}
}
}