一个普通打怪升级的小游戏,不说了,源码如下:

#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;
		}
	}
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值