C++打怪小游戏

#include<bits/stdc++.h>
#include<windows.h>
#include<unistd.h>
using namespace std;
int chs,gld,ky,lqd,bld,ncn,wpn,num,bssbld,g,k,l,b,n,w,T,flag;
bool chk=true,pd;
string a[]={"","1000金币","2500金币","损失5555金币","5000金币","2个武器","1条咒语","损失3瓶药水","损失1把钥匙","5条咒语","20点血量","损失50点血量","损失3把钥匙"};
void init(){
	gld=1000000;
	ky=10;
	lqd=3;
	bld=100;
	ncn=3;
	wpn=5;
	cout<<"玩家敬请慎重选择和输入,否则退出游戏\n";
	Sleep(1500);
	system("cls");
}
void cl(){
	system("cls");
}
int main(){
	init();
	do{
		cout<<"剩余金币:"<<gld<<"个\n";
		cout<<"剩余钥匙:"<<ky<<"把\n";
		cout<<"剩余药水:"<<lqd<<"瓶\n";
		cout<<"剩余咒语:"<<ncn<<"条\n";
		cout<<"剩余血量:"<<bld<<"点\n";
		cout<<"剩余武器:"<<wpn<<"个\n\n";
		cout<<"0 -- 商店\n";
		cout<<"1 -- 抽奖\n";
		cout<<"2 -- 打怪\n";
		cout<<"其他数字 -- 退出游戏\n";
		cin>>chs;
		if(!chs){
			cout<<"\n1000金币=1把钥匙\n";
			cout<<"1000金币=1瓶药水\n";
			cout<<"1000金币=15点血量\n";
			cout<<"1000金币=1条咒语\n";
			cout<<"1000金币=1个武器\n";
			do{
				cout<<"(成本)\n金币:";
				cin>>g;	
			}while(g<1 || gld<g);
			cout<<"(利润)\n钥匙:";
			cin>>k;
			cout<<"药水:";
			cin>>l;
			cout<<"血量:";
			cin>>b;
			T=b%15;
			b/=15;
			cout<<"咒语:";
			cin>>n;
			cout<<"武器:";
			cin>>w;
			if(!T && (k+l+b+n+w)*1000<=g){
				b*=15;
				gld-=g;
				ky+=k;
				lqd+=l;
				bld+=b;
				ncn+=n;
				wpn+=w;
				system("cls");
            }
			else
				return 0;
        }
		else if(chs==1){
			system("cls");
			srand(time(NULL));
			num=rand()%12+1;
			if(num==3 || num==7 || num==8 || num==11 || num==12)
				cout<<"好可惜!";
			else
				cout<<"恭喜你获得了";
			cout<<a[num]<<"!\n";
			switch(num){
				case 1:gld+=1000;break;
				case 2:gld+=2500;break;
				case 3:gld-=5555;break;
				case 4:gld+=5000;break;
				case 5:wpn+=2;break;
				case 6:ncn++;break;
				case 7:lqd-=3;break;
				case 8:ky--;break;
				case 9:ncn+=5;break;
				case 10:bld+=20;break;
				case 11:bld-=50;break;
				case 12:ky-=3;
            }
            if(gld<1 && wpn<1 && ncn<1 && lqd<1 && ky<1 && bld<1){
            	cout<<"很可惜!你因金币、钥匙、药水、咒语、血量、武器都不足而无法进行游戏!下次再见!";
            	return 0;
			}
        }
		else if(chs==2)
			break;
		else
			return 0;
    }while(1);
	do{
		cout<<"打怪需消耗钥匙1把\n";
		if(ky<1){
			cout<<"你的钥匙不足!需要进入商店交易或者抽奖!\n"; 
			cout<<"剩余金币:"<<gld<<"个\n";
			cout<<"剩余钥匙:"<<ky<<"把\n";
			cout<<"剩余药水:"<<lqd<<"瓶\n";
			cout<<"剩余咒语:"<<ncn<<"条\n";
			cout<<"剩余血量:"<<bld<<"点\n";
			cout<<"剩余武器:"<<wpn<<"个\n\n";
			cout<<"0 -- 商店\n";
			cout<<"1 -- 抽奖\n";
			cout<<"2 -- 打怪\n";
			cout<<"其他数字 -- 退出游戏\n";
			cin>>chs;
			if(!chs){
				cout<<"\n1000金币=1把钥匙\n";
				cout<<"1000金币=1瓶药水\n";
				cout<<"1000金币=15点血量\n";
				cout<<"1000金币=1条咒语\n";
				cout<<"1000金币=1个武器\n";
				cout<<"(成本)\n金币:";cin>>g;
				cout<<"(利润)\n钥匙:";cin>>k;
				cout<<"药水:";cin>>l;
				cout<<"血量:";cin>>b;
				T=b%15;
				b/=15;
				cout<<"咒语:";cin>>n;
				cout<<"武器:";cin>>w;
				if(!T && (k+l+b+n+w)*1000<=g){
					b*=15;
					gld-=g;
					ky+=k;
					lqd+=l;
					bld+=b;
					ncn+=n;
					wpn+=w;
					system("cls");
	            }
				else
					return 0;
	        }
			else if(chs==1){
				system("cls");
				srand(time(NULL));
				num=rand()%12+1;
				if(a[num][0]=='-')
					cout<<"好可惜!";
				else
					cout<<"恭喜你获得了";
				cout<<a[num]<<"!\n";
				switch(num){
					case 1:gld+=1000;break;
					case 2:gld+=2500;break;
					case 3:gld-=5555;break;
					case 4:gld+=5000;break;
					case 5:wpn+=2;break;
					case 6:ncn++;break;
					case 7:lqd-=3;break;
					case 8:ky--;break;
					case 9:ncn+=5;break;
					case 10:bld+=20;break;
					case 11:bld-=20;break;
					case 12:ky-=3;
	            }
	            if(gld<1 && wpn<1 && ncn<1 && lqd<1 && ky<1 && bld<1){
	            	cout<<"很可惜!你因金币、钥匙、药水、咒语、血量、武器都不足而无法进行游戏!下次再见!";
	            	return 0;
				}
	        }
		}
		bssbld=800;
		ky--;
		cout<<"开始打怪!\n怪物初始血量为:800点\n";
		srand(time(NULL));
		do{
			cout<<"请使用下列方式进行攻击(每次攻击所造成的伤害与任何事物均无关,请做好心理准备):\n";
			cout<<"0 -- 剧毒药水攻击(消耗药水1瓶)\n";
			cout<<"1 -- 魔法咒语攻击(消耗咒语1条)\n";
			cout<<"2 -- 超强武器攻击(消耗武器1个)\n";
			cout<<"3 -- 消耗血量攻击(消耗血量20点)\n";
			cout<<"其他数字 -- 退出游戏\n";
			cin>>chs;
			if(!chs)
				num=rand()%21+4;
			else if(chs==1)
				num=rand()%58;
			else if(chs==2)
				num=rand()%73;
			else if(chs==3)
				num=rand()%110;
			else
				return 0;
    		cout<<"此关Boss受到"<<num<<"点伤害\n";
			bssbld-=num;
			cout<<"目前Boss血量为"<<bssbld<<"点\n";
			cout<<"Boss要对你发起猛烈回击...\n";
			sleep(1);
			pd=true;
			T=rand()%6+1;
			switch(T){
				case 1:if(gld>399){cout<<"金币-400!\n";sleep(1);gld-=400;}
					   else chk=false;break;
				case 2:if(ky>0){cout<<"钥匙-1!\n";sleep(1);ky--;}
					   else	chk=false;break;
			 	case 3:if(bld>9){cout<<"血量-10!\n";sleep(1);gld-=10;}
				       else	chk=false;break;
				case 4:if(lqd>0){cout<<"药水-1!\n";sleep(1);lqd--;}
				       else	chk=false;break;
				case 5:if(ncn>0){cout<<"咒语-1!\n";sleep(1);ncn--;}
				       else	chk=false;break;
				case 6:if(wpn>0){cout<<"武器-1!\n";sleep(1);wpn--;}
				       else chk=false;
			}
			cout<<"剩余金币:"<<gld<<"个\n";
			cout<<"剩余钥匙:"<<ky<<"把\n";
			cout<<"剩余药水:"<<lqd<<"瓶\n";
			cout<<"剩余咒语:"<<ncn<<"条\n";
			cout<<"剩余血量:"<<bld<<"点\n";
			cout<<"剩余武器:"<<wpn<<"个\n\n";
        }while(bssbld>0 && chk);
		if(chk){
			cout<<"恭喜你打怪成功!接下来是随机奖励环节!\n";
			num=rand()%50000+2000;
			cout<<"获得金币"<<num<<"个\n";
			gld+=num;
			num=rand()%15+3;
			cout<<"获得钥匙"<<num<<"把\n";
		    ky+=num;
			num=rand()%10+3;
			cout<<"获得药水"<<num<<"瓶\n";
			lqd+=num;
			num=rand()%200+25;
			cout<<"获得血量"<<num<<"点\n";
			bld+=num;
    		num=rand()%15+3;
		    cout<<"获得咒语"<<num<<"条\n";
    		ncn+=num;
			num=rand()%10+3;
    		cout<<"获得武器"<<num<<"个\n";
			wpn+=num;
        }
		else{
			cout<<"很可惜,你打怪失败!接下来是安慰奖:\n获得金币300个\n获得血量20点\n";
			gld+=500;
			bld+=20;
		}
		cout<<"还想玩输入1,否则输入0\n";
		for(cin>>flag;flag!=1 && flag;cin>>flag)
			cout<<"只能输入1或0哦!\n";
	}while(flag);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值