c++技能大作战小游戏

这是一篇关于C++编程的实战分享,作者通过创作一款小游戏,详细介绍了其编程过程和技术要点。读者可以在评论区反馈遇到的问题或发现的bug。
摘要由CSDN通过智能技术生成

(此作品是作者写了很长时间才完成的,如有bug,欢迎在评论区告诉作者哦 \(^o^)/~  )

可存档版:

//技能大乱斗v1.4.5飞来横祸
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
long long q,p,m,ji[10001]={0},dji[10001]={0},hp=1000,dhp=1000,pg=100,dpg=100,pw,dpw,c=1,b=0,a=0,s=0,ss=0,dc=0,db=0,da=0,ds=0,dss=0,u=3,o,r=1,l,www=0,god=0,lv=1,sa=1,d=1,win=0,lose=0,jie,e=0,du=0,GFS,dGFS,tz=1,atk=0,wake=1,need=1,have=0,story=1,zl=500,cause=0,zneed=300;
long long firecircle=0,ironline=0,mindctrl=0,cawnoodles=0,angry=0,oldman=0,cheater=0,electricity=0,ghost=0,zombie=0,sea=0,fruitice=0,Greatwall=0,seller=0,reliver=0,ghosttomb=0,roundcut=0,useless=0;
long long dfirecircle=0,dironline=0,dmindctrl=0,dcawnoodles=0,dangry=0,doldman=0,dcheater=0,delectricity=0,dghost=0,dzombie=0,dsea=0,dfruitice=0,dGreatwall=0,dseller=0,dreliver=0,dghosttomb=0,droundcut=0,duseless=0;
long long x_maxrecharge=0,x_change=0,x_angry=0,x_destorylight_c=0,x_sea=0,x_fruitice=0,x_destorylight_b=0,x_destorylight_a=0,x_turtlesoup=0,x_singer=0,x_gzkill=0;
long long dx_maxrecharge=0,dx_change=0,dx_angry=0,dx_destorylight_c=0,dx_sea=0,dx_fruitice=0,dx_destorylight_b=0,dx_destorylight_a=0,dx_turtlesoup=0,dx_singer=0,dx_gzkill=0;
void save()
{
    ifstream fin("技能大乱斗存档.txt");
    while(fin>>sa)
	{
		story=sa%100;
		wake=(sa%1000-story)/100;
		GFS=(sa%10000-wake*100-story)/1000;
		dGFS=(sa%100000-GFS*1000-wake*100-story)/10000;
		c=(sa%10000000000-dGFS*10000-GFS*1000-wake*100-story)/100000;
		lv=(sa-c*100000-dGFS*10000-GFS*1000-wake*100-story)/10000000000;
	}
    if(c>=2)
	{
		p=c%2;
		c-=p;
		c/=2;
		b+=c;
		c=p;
	}
	if(b>=2)
	{
		p=b%2;
		b-=p;
		b/=2;
		a+=b;
		b=p;
	}
	if(a>=2)
	{
		p=a%2;
		a-=p;
		a/=2;
		s+=a;
		a=p;
	}
	if(s>=2)
	{
		p=s%2;
		s-=p;
		s/=2;
		ss+=s;
		s=p;
	}
}
int main()
{
	cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"///技能大乱斗///";
	Sleep(2000);
	system("cls");
	cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<"///史诗工作室///";
	Sleep(2000);
	system("cls");
	cout<<"健康游戏忠告:"<<endl<<"抵制不良游戏,拒绝盗版游戏。"<<endl<<"注意自我保护,谨防受骗上当。"<<endl<<"适度游戏益脑,沉迷游戏伤身。"<<endl<<"合理安排时间,享受健康生活。";
	Sleep(5000);
	system("cls");
	cout<<"技能大乱斗v1.4.5飞来横祸"<<endl<<"更新说明:"<<endl<<"1.更新了剧情模式"<<endl<<"2.修复了一些已知bug"<<endl;
	cout<<"注意,想退游戏必须在主界面扣4,否则存档不会更新"<<endl;
	system("pause");
	save();
	ji[1]=1;
	ji[2]=1;
	ji[3]=1;
	dji[1]=1;
	dji[2]=1;
	dji[3]=1;
	srand((unsigned)time(NULL));
	if(GFS!=0&&dGFS!=0)goto play;
	CGFS:system("cls");
	cout<<"选择你的天赋:"<<endl;
	cout<<"1.水系"<<endl;
	cout<<"2.火系"<<endl;
	cout<<"3.木系"<<endl;
	cin>>q;
	if(q<=0||q>=4)goto CGFS;
	if(q>=1&&q<=3)
	{
		GFS=q;
		l=rand()%3+1;
		dGFS=l;
		cout<<"敌人选择了"; 
		if(dGFS==1)cout<<"水系,";
		if(dGFS==2)cout<<"火系,";
		if(dGFS==3)cout<<"木系,";
		if(GFS==dGFS)cout<<"跟你一样!"<<endl;
		if(GFS==1&&dGFS==3||GFS==2&&dGFS==1||GFS==3&&dGFS==2)cout<<"克你!"<<endl;
		if(GFS==1&&dGFS==2||GFS==2&&dGFS==3||GFS==3&&dGFS==1)cout<<"被你克!"<<endl;
		system("pause");
	}
	play:system("cls");
	choose:cout<<"段位:";
	if(lv==1)cout<<"兵I"<<endl;
	if(lv==2)cout<<"将I"<<endl;
	if(lv==3)cout<<"君II"<<endl;
	if(lv==4)cout<<"君I"<<endl;
	if(lv==5)cout<<"王III"<<endl;
	if(lv==6)cout<<"王II"<<endl;
	if(lv==7)cout<<"王I"<<endl;
	if(lv==8)cout<<"帝III"<<endl;
	if(lv==9)cout<<"帝II"<<endl;
	if(lv==10)cout<<"帝I"<<endl;
	if(lv==11)cout<<"半圣"<<endl;
	if(lv==12)cout<<"圣IV"<<endl;
	if(lv==13)cout<<"圣III"<<endl;
	if(lv==14)cout<<"圣II"<<endl;
	if(lv==15)cout<<"圣I"<<endl;
	if(lv==16)cout<<"半神"<<endl;
	if(lv==17)cout<<"神V"<<endl;
	if(lv==18)cout<<"神IV"<<endl;
	if(lv==19)cout<<"神III"<<endl;
	if(lv==20)cout<<"神II"<<endl;
	if(lv==21)cout<<"神I"<<endl;
	if(lv>=22)cout<<"超神"<<lv-21<<"星"<<"     ";
	zl=0;
	cause=0;
	for(int i=4;i<=33;i++)
	{
		if(4<=i<=6&&ji[i]==1)zl+=100;
		if(7<=i<=14&&ji[i]==1)sa+=200;
		if(15<=i<=22&&ji[i]==1)sa+=400;
		if(23<=i<=26&&ji[i]==1)sa+=800;
		if(27<=i<=33&&ji[i]==1)sa+=1600;
	}
	zl+=300;
	zl+=wake*200;
	cout<<"战斗力:"<<zl<<endl;
	cout<<"1.游玩"<<endl<<"2.技能"<<endl<<"3.自动合成技能券"<<endl<<"4.退出"<<endl;
	cin>>q;
	if(q==1)
	{
		mod:system("cls");
		cout<<"1.人机模式"<<endl;
		cout<<"2.挑战模式"<<endl;
		cout<<"3.剧情模式"<<endl;
		cout<<"4.返回"<<endl;
		cin>>q;
		if(q==1)
		{
			system("cls");
			m=1;
			cout<<"1.段位模式"<<endl<<"2.休闲模式"<<endl;
			cin>>q;
			if(q==1)d=1;
			else d=0;
			bet:system("cls");
			cout<<"是否下注?(1下2不下)"<<endl;
			cin>>q;
			if(q==1)
			{
				e=1;
				bett:system("cls");
				cout<<"押多少?(换算成初级券,0取消)"<<endl;
				cin>>q;
				if(q>c+2*b+4*a+8*s+16*ss)
				{
					cout<<"券不够!"<<endl;
					system("pause");
					goto bett;
				}
				if(q==0)goto bet;
				du=q;
			}
			else e=0;
			goto fight;
		}
		if(q==2)
		{
			system("cls");
			m=2;
			cout<<"1.极限攻击"<<endl<<"2.绝对防御"<<endl;
			cin>>q;
			if(q==1)tz=1;
			else tz=2;
			goto fight;
		}
		if(q==3)
		{
			system("cls");
			m=3;
			goto fight;
		}
		else
		{
			system("cls");
			goto play;
		}
	}
	if(q==2)
	{
		skill:system("cls");
		cout<<"1.查看技能"<<endl;
		cout<<"2.学习技能"<<endl;
		cout<<"3.升级技能(目前仅限于天赋技能)"<<endl;
		cout<<"4.返回"<<endl;
		cin>>q;
		if(q==1)
		{
			system("cls");
			cout<<"已学技能:"<<endl;
			cout<<"普攻"<<endl;
			cout<<"治愈术"<<endl;
			cout<<"解印术"<<endl;
			if(ji[4]==1)cout<<"火圈"<<endl;
			if(ji[5]==1)cout<<"铁索连环"<<endl;
			if(ji[6]==1)cout<<"火球术"<<endl;
			if(ji[7]==1)cout<<"附身"<<endl;
			if(ji[8]==1)cout<<"毁灭飞弹"<<endl;
			if(ji[9]==1)cout<<"极限治愈术"<<endl;
			if(ji[10]==1)cout<<"反转术"<<endl;
			if(ji[11]==1)cout<<"牛犇面"<<endl;
			if(ji[12]==1)cout<<"狂暴"<<endl;
			if(ji[13]==1)cout<<"老头胡拉茬"<<endl;
			if(ji[14]==1)cout<<"当老千"<<endl;
			if(ji[15]==1)cout<<"初等毁灭之光"<<endl;
			if(ji[16]==1)cout<<"封雷斩"<<endl;
			if(ji[17]==1)cout<<"死灵之术"<<endl;
			if(ji[18]==1)cout<<"生化危机"<<endl;
			if(ji[19]==1)cout<<"海纳百川"<<endl;
			if(ji[20]==1)cout<<"火锅诱惑"<<endl;
			if(ji[21]==1)cout<<"果冻之海"<<endl;
			if(ji[22]==1)cout<<"伟大的墙"<<endl;
			if(ji[23]==1)cout<<"中等毁灭之光"<<endl;
			if(ji[24]==1)cout<<"战争商贩"<<endl;
			if(ji[25]==1)cout<<"机关长枪"<<endl;
			if(ji[26]==1)cout<<"无效化"<<endl;
			if(ji[27]==1)cout<<"完全毁灭之光"<<endl;
			if(ji[28]==1)cout<<"逆天十全王八大补汤"<<endl;
			if(ji[29]==1)cout<<"歌者入侵"<<endl;
			if(ji[30]==1)cout<<"秽土转生"<<endl;
			if(ji[31]==1)cout<<"尸鬼封尽"<<endl;
			if(ji[32]==1)cout<<"圣灵墓地"<<endl;
			if(ji[33]==1)cout<<"轮回斩"<<endl;
			if(GFS==1)cout<<"水漫金山"<<endl;
			if(GFS==2)cout<<"星火燎原"<<endl;
			if(GFS==3)cout<<"荆棘之触"<<endl;
			system("pause");
			goto skill;
		}
		if(q==2)
		{
			system("cls");
			cout<<"你想学什么技能?(输入技能编号)"<<endl;
			cout<<"4.火圈"<<endl;
			cout<<"5.铁索连环"<<endl;
			cout<<"6.火球术"<<endl;
			cout<<"7.附身"<<endl;
			cout<<"8.毁灭飞弹"<<endl;
			cout<<"9.极限治愈术"<<endl;
			cout<<"10.反转术"<<endl;
			cout<<"11.牛犇面"<<endl;
			cout<<"12.狂暴"<<endl;
			cout<<"13.老头胡拉茬"<<endl;
			cout<<"14.当老千"<<endl;
			cout<<"15.初等毁灭之光"<<endl;
			cout<<"16.封雷斩"<<endl;
			cout<<"17.死灵之术"<<endl;
			cout<<"18.生化危机"<<endl;
			cout<<"19.海纳百川"<<endl;
			cout<<"20.火锅诱惑"<<endl;
			cout<<"21.果冻之海"<<endl;
			cout<<"22.伟大的墙"<<endl;
			cout<<"23.中等毁灭之光"<<endl;
			cout<<"24.战争商贩"<<endl;
			cout<<"25.机关长枪"<<endl;
			cout<<"26.无效化"<<endl;
			cout<<"27.完全毁灭之光"<<endl;
			cout<<"28.逆天十全王八大补汤"<<endl;
			cout<<"29.歌者入侵"<<endl;
			cout<<"30.秽土转生"<<endl;
			cout<<"31.尸鬼封尽"<<endl;
			cout<<"32.圣灵墓地"<<endl;
			cout<<"33.轮回斩"<<endl;
			cin>>q;
			if(q>=3&&q<=33)goto learn;
			goto skill;
		}
		if(q==3)
		{
			system("cls");
			if(GFS==1)cout<<"水漫金山";
			if(GFS==2)cout<<"星火燎原";
			if(GFS==3)cout<<"荆棘之触";
			if(wake==1)
			{
				cout<<"当前C级,";
				need=1;
			}
			if(wake==2)
			{
				cout<<"当前B级,";
				need=2;
			}
			if(wake==3)
			{
				cout<<"当前A级,";
				need=4;
			}
			if(wake==4)
			{
				cout<<"当前S级,";
				need=8;
			}
			if(wake==5)
			{
				cout<<"当前SS级,已满级"<<endl;
				system("pause");
				goto skill;
			}
			have=c+2*b+4*a+8*s+16*ss;
			if(have<need)
			{
				cout<<"券不够!"<<endl;
				system("pause");
				goto skill;
			}
			cout<<"是否升级?(1是2否)"<<endl;
			cin>>q;
			if(q==1)
			{
				have-=need;
				c=have;
				wake++;
				cout<<"升级成功!"<<endl;
				system("pause");
				goto play;
			}
			else goto play;
		}
		if(q==4)goto play;
		else goto skill;
	}
	if(q==3)
	{
		if(c>=2)
		{
			p=c%2;
			c-=p;
			c/=2;
			b+=c;
			c=p;
		}
		if(b>=2)
		{
			p=b%2;
			b-=p;
			b/=2;
			a+=b;
			b=p;
		}
		if(a>=2)
		{
			p=a%2;
			a-=p;
			a/=2;
			s+=a;
			a=p;
		}
		if(s>=2)
		{
			p=s%2;
			s-=p;
			s/=2;
			ss+=s;
			s=p;
		}
		if(dc>=2)
		{
			p=dc%2;
			dc-=p;
			dc/=2;
			db+=dc;
			dc=p;
		}
		if(db>=2)
		{
			p=db%2;
			db-=p;
			db/=2;
			da+=db;
			db=p;
		}
		if(da>=2)
		{
			p=da%2;
			da-=p;
			da/=2;
			ds+=da;
			da=p;
		}
		if(ds>=2)
		{
			p=ds%2;
			ds-=p;
			ds/=2;
			dss+=ds;
			ds=p;
		}
	}
	if(q==4)
	{
		sa=story;
		sa+=wake*100;
		sa+=GFS*1000;
		sa+=dGFS*10000;
		sa+=100000*c+200000*b+400000*a+800000*s+1600000*ss;
		for(int i=4;i<=33;i++)
		{
			if(4<=i<=6&&ji[i]==1)sa+=100000;
			if(7<=i<=14&&ji[i]==1)sa+=200000;
			if(15<=i<=22&&ji[i]==1)sa+=400000;
			if(23<=i<=26&&ji[i]==1)sa+=800000;
			if(27<=i<=33&&ji[i]==1)sa+=1600000;
		}
		sa+=lv*10000000000;
		ofstream out("技能大乱斗存档.txt");
		out<<sa;
		out.close();
		cin.get();
		return 0;
	}
	if(q==1618986342/618)
	{
		cout<<"开启上帝模式!"<<endl;
		god=1;
		system("pause");
		system("color e0");
		ss=999;
		hp=99999;
		pg=99999;
		wake=5;
		goto play;
	}
	goto play;
	learn:system("cls");
	cout<<"你拥有:"<<endl;
	cout<<"初级券*"<<c<<endl;
	cout<<"中级券*"<<b<<endl;
	cout<<"高级券*"<<a<<endl;
	cout<<"特级券*"<<s<<endl;
	cout<<"神级券*"<<ss<<endl;
	if(q==4&&ji[4]==0)
	{
		cout<<"火圈需1初级券"<<endl;
		if(c>=1||b>=1||a>=1||s>=1||ss>=1)cout<<"确认学习?(1确认2取消,可能需要分解更高级的技能券,高一级技能券可分解为2张低一级技能券)"<<endl;
		else
		{
			cout<<"券不够!"<<endl;
			system("pause");
			goto skill;
		}
		www=4;
		goto buy;
	}
	if(q==5&&ji[5]==0)
	{
		cout<<"铁索连环需1初级券"<<endl;
		if(c>=1||b>=1||a>=1||s>=1||ss>=1)cout<<"确认学习?(1确认2取消,可能需要分解更高级的技能券,高一级技能券可分解为2张低一级技能券)"<<endl;
		else
		{
			cout<<"券不够!"<<endl;
			system("pause");
			goto skill;
		}
		www=5;
		goto buy;
	}
	if(q==6&&ji[6]==0)
	{
		cout<<"火球术需1初级券"<<endl;
		if(c>=1||b>=1||a>=1||s>=1||ss>=1)cout<<"确认学习?(1确认2取消,可能需要分解更高级的技能券,高一级技能券可分解为2张低一级技能券)"<<endl;
		else
		{
			cout<<"券不够!"<<endl;
			system("pause");
			goto skill;
		}
		cin>>q;
		www=6;
		goto buy;
	}
	if(q==7&&ji[7]==0)
	{
		cout<<"附身需1中级券"<<endl;
		if(b>=1||a>=1||s>=1||ss>=1)cout<<"确认学习?(1确认2取消,可能需要分解更高级的技能券,高一级技能券可分解为2张低一级技能券)"<<endl;
		else
		{
			cout<<"券不够!"<<endl;
			system("pause");
			goto skill;
		}
		www=7;
		goto buy;
	}
	if(q==8&&ji[8]==0)
	{
		cout<<"毁灭飞弹需1中级券"<<endl;
		if(b>=1||a>=1||s>=1||ss>=1)cout<<"确认学习?(1确认2取消,可能需要分解更高级的技能券,高一级技能券可分解为2张低一级技能券)"<<endl;
		else
		{
			cout<<"券不够!"<<endl;
			system("pause");
			goto skill;
		}
		www=8;
		goto buy;
	}
	if(q==9&&ji[9]==0)
	{
		cout<<"极限治愈术需1中级券"<<endl;
		if(b>=1||a>=1||s>=1||ss>=1)cout<<"确认学习?(1确认2取消,可能需要分解更高级的技能券,高一级技能券可分解为2张低一级技能券)"<<endl;
		else
		{
			cout<<"券不够!"<<endl;
			system("pause");
			goto skill;
		}
		www=9;
		goto buy;
	}
	if(q==10&&ji[10]==0)
	{
		cout<<"反转术需1中级券"<<endl;
		if(b>=1||a>=1||s>=1||ss>=1)cout<<"确认学习?(1确认2取消,可能需要分解更高级的技能券,高一级技能券可分解为2张低一级技能券)"<<endl;
		else
		{
			cout<<"券不够!"<<endl;
			system("pause");
			goto skill;
		}
		www=10;
		goto buy;
	}
	if(q==11&&ji[11]==0)
	{
		cout<<"牛犇面需1中级券"<<endl;
		if(b>=1||a>=1||s>=1||ss>=1)cout<<"确
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值