C++小游戏 杀手

#include<bits/stdc++.h>
#include<windows.h>
	int fleg=0;
	int flagg=0,again,cho,num,about,fla=0,strc,hod,cous=0,couss=0;
	int xzgx,three=0,five=0,ten=0,dmon,dumo=0,paim=0,fhk=0,kill=0,killd=0,can=0;
	long long money=0;
	long shop[4],pric[5]= {0,30,60,90};
	char hyy[49]="欢迎来到杀手的世界!作者提那米苏";
	char hya[50]="美国某城市有7年一度的杀人锦标赛,";
	char hyb[50]="每年都有5名选手参加,任务就是杀掉其他选手," ;
	char hyc[50]="获得冠军的将获得巨额奖励,一次偶然,";
	char hyd[50]="拥有谋杀技术的你加入了这次比赛,";
	char hye[50]="参赛的人都有不同的技能,你需要力克其他人,";
	char hyf[20]="登上巅峰!";
	int main() {
		SYSTEMTIME sys;
		GetLocalTime( &sys );
		srand(time(NULL));
		int b,p,x,c,d,e=0,f=0,g,h=0,i=1,j,l,m,n=5,o=0,flag=0,t1=0,t2=0,last=0;
		int flog=0,tans=0,change=0,choo,ice,tangc=0,train,goch=0,game=1,choos=1;
		if(flagg==0) {
			for(int so=0; so<strlen(hyy); ++so) {
				printf("%c",hyy[so]);
				Sleep(100);
			}
			printf("\n\n");
			flagg=1;
		}
		if(paim!=0&&dumo==0)	paim=0;
		if(couss==1) cous=1;
		if(paim!=0&&dumo!=0) {
			printf("你在赌场投注了赌金\n");
			Sleep(1000);
			switch(paim) {
				case 1:
					printf("恭喜恭喜!获得了200%的赌金!获得了%d元\n",dumo*3);
					money+=dumo*3;
					break;
				case 2:
					printf("祝贺祝贺!获得了100%的赌金!获得了%d元\n",dumo*2);
					money+=dumo*2;
					break;
				case 3:
					printf("很遗憾!只获得了全部投注的赌金!挽回了%d元\n",dumo);
					money+=dumo;
					break;
				default:
					printf("继续加油吧,赌金就被赌场收下了\n");
			}
			printf("\n");
			Sleep(3000);
			dumo=0;
			paim=0;
		}
		if(three==3) {
			printf("恭喜三连胜!\n");
			Sleep(1000);
			printf("我们为你准备了丰厚的奖品:150元,复活卡3张,冰冻卡2张,无敌卡1张\n\n");
			money+=150,shop[1]+=3,shop[2]+=2,shop[3]+=1;
			three=0;
			Sleep(3000);
		}
		if(five==5) {
			printf("恭喜五连胜!\n");
			Sleep(1000);
			printf("我们为你准备了丰厚的奖品:300元,复活卡6张,冰冻卡4张,无敌卡3张\n\n");
			money+=300,shop[1]+=6,shop[2]+=4,shop[3]+=3;
			five=0;
			Sleep(3000);
		}
		if(ten==10) {
			printf("恭喜十连胜!\n");
			Sleep(1000);
			printf("我们为你准备了丰厚的奖品:1000元,复活卡15张,冰冻卡12张,无敌卡10张\n\n");
			money+=1000,shop[1]+=15,shop[2]+=12,shop[3]+=10;
			ten=0;
			Sleep(3000);
		}
		printf("按1->开始游戏,按2->道具商店,按3->J神赌场,按4->活动专栏,按5->游戏规则,按6->关于游戏,按7->游戏背景,按0->退出游戏\n");
		scanf("%d",&strc);
		if(strc>7) {
			printf("请不要乱来!\n\n");
			Sleep(1000);
			return main();
		}
		if(strc==0)	return 0;
		if(strc==2) {
			printf("---------------------------------------------\n杀手商店---");
			printf("您现在有%d元\n",money);
			printf("复活卡30一张,您现在拥有%d张(购买:按1)\n",shop[1]);
			printf("冰冻卡60一张,您现在拥有%d张(购买:按2)\n",shop[2]);
			printf("无敌卡90一张,您现在拥有%d张(购买:按3)\n(返回主页:按4)\n",shop[3]);
			scanf("%d",&cho);
			if(cho==4) {
				printf("---------------------------------------------\n\n");
				return main();
			}
			printf("请输入购买数量:");
			scanf("%d",&train);
			if(money>=pric[cho]*train) {
				money-=pric[cho]*train;
				shop[cho]+=train;
				printf("购买成功,道具已开始生效!\n---------------------------------------------\n\n");
				return main();
			} else {
				printf("钱不够了!\n---------------------------------------------\n\n");
				return main();
			}
		}
		if(strc==3) {
			printf("---------------------------------------------\n欢迎来到J神赌场!\n");
			Sleep(1000);
DC:
			printf("按1开始投注,按2观看规则,按3退出\n");
			scanf("%d",&dmon);
			if(dmon==1) {
				Sleep(1000);
				printf("请确认看了规则(没看规则的在下面输入0)!\n");
				Sleep(1000);
				printf("请输入赌金(元):");
				scanf("%d",&dumo);
				if(dumo!=0&&dumo<=money) {
					printf("投注成功!\n---------------------------------------------\n\n");
					money-=dumo;
					return main();
				}
				if(dumo>money) {
					printf("钱不够了!\n\n");
					dumo=0;
					goto DC;
				}
			}
			if(dmon!=3) {
				Sleep(1000);
				printf("投注后第一局:\n");
				printf("第一名:获得赌金的200%\n");
				printf("第二名:获得赌金的100%\n");
				printf("第三名:获得全部投注赌金\n");
				printf("第四名/第五名:赌金就被赌场收下了\n");
				printf("\n");
				goto DC;
			}
			printf("---------------------------------------------\n\n");
			return main();
		}
		if(strc==4) {
			printf("---------------------------------------------\n今日活动:\n");
			Sleep(1000);
			printf("\t不死神话:累计使用复活卡10次");
			if(fhk>=10) printf("     10/10\t(已完成,按1领取)"),can=1;
			else printf("     %d/10",fhk);
			printf("\n\t大开杀戒:杀死敌人累计15次");
			if(kill>=15) printf("       15/15\t(已完成,按2领取)"),can=1;
			else printf("       %d/15",kill);
			printf("\n\t致命诅咒:用诅咒杀死他人赢得冠军");
			if(cous==1) printf(" 1/1\t(已完成,按3领取)"),can=1;
			else printf(" 0/1");
			printf("\n限时活动:\n\t哀思·清明(4.04-5.04)");
			if(sys.wMonth==4||(sys.wMonth==5&&sys.wDay<=4)) {
				printf(":每日获得一张复活卡");
				if(fleg==0) printf(",按4领取"),can=1;
				else printf(",今日已领取");
			} else printf(":活动已过时");
			printf("\n");
			if(can==1) {
				scanf("%d",&hod);
				switch(hod) {
					case 1:
						if(fhk<10) {
							printf("你还未完成此任务!\n---------------------------------------------\n\n");
							return main();
						}
						printf("你获得了60元,3张复活卡\n"),money+=60,shop[1]+=3,fhk=0;
						break;
					case 2:
						if(kill<15) {
							printf("你还未完成此任务!\n---------------------------------------------\n\n");
							return main();
						}
						printf("你获得了200元,5张无敌卡\n"),money+=200,shop[3]+=5,kill=0;
						break;
					case 3:
						if(cous==0) {
							printf("你还未完成此任务!\n---------------------------------------------\n\n");
							return main();
						}
						printf("你获得了666元,实在太6了!\n"),money+=666,cous=0;
						break;
					case 4:
						if(fleg==1) {
							printf("领取失败!\n---------------------------------------------\n\n");
							return main();
						}
						printf("领取成功!\n");
						shop[1]++,fleg=1;
						break;
				}
			}
			printf("---------------------------------------------\n\n");
			can=0;
			return main();
		}
		if(strc==5) {
			printf("\n------------------------------------------------------------------------------------------------------------");
			Sleep(1000);
			printf("\n开局会有一个存活者:开局或轮到你时会显示(1 2 3 4 5),如果出现(1 0 3 4 5),代表二号已经死了\n");
			Sleep(3000);
			printf("开局玩家可自行选定一名杀手,每一名杀手有不同的特权\n");
			Sleep(3000);
			printf("5名杀手按编号顺序轮流杀人,可选定一名杀手作试图杀死对象,不可选择死人或自己\n");
			Sleep(3000);
			printf("选定后将掷出骰子,若掷出数字不大于自身编号,则视为暗杀成功\n");
			Sleep(3000);
			printf("1号有3次复活权,且有一次随机诅咒权(即当自己被杀死时,会随机诅咒另外一个人,当然不是死人或自己,使其死亡)\n");
			Sleep(3000);
			printf("2号有一次复活权,且有一次随机诅咒权(但目标死亡率为50%)\n");
			Sleep(3000);
			printf("3有一次复活权\n");
			Sleep(3000);
			printf("4号有再次攻击权(即当4号杀死一个人时,便可以再次攻击一个人)\n");
			Sleep(3000);
			printf("5号有无视复活权(当成功杀死一个人时,有2/3的几率可以无视目标复活权直接将其杀死)\n");
			Sleep(3000);
			printf("为了加大游戏的玩赏性,局内设置了各种道具\n");
			Sleep(3000);
			printf("复活卡可死后多加一条命,单局只能使用一次,决斗时无法生效\n");
			Sleep(3000);
			printf("冰冻卡可冰冻指定杀手二回合,死后可随机诅咒,单局只能使用一次\n");
			Sleep(3000);
			printf("无敌卡可开局无敌三回合\n");
			Sleep(3000);
			printf("接下来可以开启你的游戏旅程吧!新手建议选择1号体验\n");
			Sleep(3000);
			printf("10秒后返回主页");
			printf("\n------------------------------------------------------------------------------------------------------------\n\n");
			Sleep(10000);
			return main();
		}
		if(strc==6) {
			printf("---------------------------------------------\n游戏信息\n");
			printf("游戏名称:暗夜杀手-C++编程小游戏\n游戏版本:1.2.3 更新信息按1,检查更新请按2;\n");
			printf("版权更新: CSDN: Jeffrey2020\n");
			printf("支持作者请按3,喷作者请按4,献上宝贵建议请按5,返回主页请按5;\n");
			scanf("%d",&about);
			switch(about) {
				case 1:
					printf("\n1.2.5版本:\n更新目标:来自作者的道歉:因为近期学业太紧,更新目标暂不定,谢谢谅解!\n\t 尽量做出新手教学");
					break;
				case 2:
					printf("检查更新中");
					Sleep(1000);
					printf(".");
					Sleep(1000);
					printf(".");
					Sleep(1000);
					printf(".\n");
					Sleep(1000);
					if(sys.wMonth<6) printf("当前已是最新版本");
					else {
						printf("可能有更新版本,获取最新请按0,放弃最新请按1\n");
						scanf("%d",&xzgx);
						if(xzgx==0) {
							printf("好的\n跳转中...\n");
							Sleep(1000);
							ShellExecute(NULL,"open","https://blog.csdn.net/jeffrey2020/category_9714708.html",NULL,NULL,SW_SHOWNORMAL);
							Sleep(500);
							printf("正在退出游戏...");
							return 0;
						}
					}
					break;
				case 3:
					printf("跳转中...请点击“关注”");
					Sleep(1000);
					ShellExecute(NULL,"open","https://me.csdn.net/Jeffrey2020",NULL,NULL,SW_SHOWNORMAL);
					Sleep(5000);
					printf("\n完成!\n爱你哟,么么哒!");
					if(fla==0) money+=60,fla=1;
					break;
				case 4:
					printf("我记住你了");
					Sleep(2000);
					printf("\n后会无期!");
					return 0;
					break;
				case 5:
					printf("跳转中...请点击“私信”");
					Sleep(1000);
					ShellExecute(NULL,"open","https://me.csdn.net/Jeffrey2020",NULL,NULL,SW_SHOWNORMAL);
					Sleep(5000);
					printf("\n感谢您的反馈!");
			}
			printf("\n---------------------------------------------\n\n");
			return main();
		}
		if(strc==7) {
			printf("\n");
			for(int so=0; so<strlen(hya); ++so) {
				printf("%c",hya[so]);
				Sleep(60);
			}
			printf("\n");
			for(int	so=0; so<strlen(hyb); ++so) {
				printf("%c",hyb[so]);
				Sleep(60);
			}
			printf("\n");
			for(int	so=0; so<strlen(hyc); ++so) {
				printf("%c",hyc[so]);
				Sleep(60);
			}
			printf("\n");
			for(int	so=0; so<strlen(hyd); ++so) {
				printf("%c",hyd[so]);
				Sleep(60);
			}
			printf("\n");
			for(int	so=0; so<strlen(hye); ++so) {
				printf("%c",hye[so]);
				Sleep(60);
			}
			printf("\n");
			for(int	so=0; so<strlen(hyf); ++so) {
				printf("%c",hyf[so]);
				Sleep(60);
			}
			printf("\n\n");
			return	main();
		}
		killd=0;
		printf("\n选择你的杀手编号(1-5)\n");
		scanf("%d",&b);
		printf("\n");
		int	a[6]= {0,1,2,3,4,5},k[10]= {0};
AA:
		while(n!=1) {
			if(game==1&&i==1&&shop[3]>=1) {
				printf("是否启用无敌卡?是按0,否按1\n");
				scanf("%d",&choos);
				if(choos==0) {
					Sleep(1000);
					printf("启用成功!\n");
					shop[3]--;
				}
				printf("\n");
			}
			if(n==2&&last==0) {
				Sleep(1000);
				printf("决斗时刻!\n");
				for(int las=1; las<=5; ++las) {
					if(t1==0&&a[las]!=0) t1=las;
					else if(a[las]!=0&&t1!=0) t2=las;
				}
				Sleep(1000);
				printf("%d号与%d号冠军之争!\n\n",t1,t2);
				last=1;
			}
			if(i==1&&change==0) {
				Sleep (1000);
				printf("存活者:%d %d %d %d %d\n\n",a[1],a[2],a[3],a[4],a[5]);
			}
			if(i==6) i=1,game++;
			if(a[i]==0) {
				i++;
				continue;
			}
			Sleep(1000);
			if(tangc==0) printf("轮到%d号\n",i);
			else tangc=0;
			if(i==b) {
				Sleep(1000);
FF:
				if(goch==1) Sleep(1000);
				printf("选择你要攻击的目标:%d %d %d %d %d",a[1],a[2],a[3],a[4],a[5]);
				if(shop[2]>=1&&change==0)	printf(" 若要冰冻敌人请按6");
				printf("\n");
				scanf("%d",&choo);
				if(choo==6&&shop[2]>=1) {
EE:
					Sleep(1000);
					printf("选择你要冰冻的目标:%d %d %d %d %d\n",a[1],a[2],a[3],a[4],a[5]);
					scanf("%d",&ice);
					if(a[ice]==0||ice==b||ice>5) {
						printf("你无法冰冻该杀手!\n");
						goto EE;
					} else printf("冰冻成功!\n"),change=1,tangc=1;
					shop[2]--;
					goto AA;
				} else {
					p=choo;
					if(a[p]==0||p==b||p>4) {
						printf("你无法选择该杀手\n");
						goch=1;
						goto FF;
					}
				}
			} else {
				do
					p=rand()%5+1;
				while(p!=i);
				while(a[p]==0||p==i) p=rand()%5+1;
			}
			if(i==ice&&tans<=1) {
				Sleep(1000);
				printf("%d号被冰冻,跳过\n\n",ice);
				i++;
				tans++;
				goto AA;
			}
			Sleep(1000);
			printf("%d号选择了%d号\n",i,p);
			Sleep(1000);
			printf("%d号掷出了%d\n",i,c=rand()%6);
			if(i>=c) {
				if(p==b&&choos==0&&game<=3||p==5) {
					Sleep(1000);
					printf("%d号无法杀死%d号,因为%d号开启了无敌卡\n\n",i,b,b);
					i++;
					goto AA;
				}
				a[p]=0;
				Sleep(1000);
				printf("%d号杀死了%d号\n\n",i,p);
				if(i==b) kill++;
				n--;
			} else {
				Sleep(1000);
				printf("%d号没有杀死目标\n\n",i);
			}
			if(i==5&&a[p]==0) {
				if(p==1&&f<=2) {
					Sleep(1000);
					printf("5号无视1号复活权\n");
					Sleep(800);
					printf("直接将其杀死\n\n");
					f=3;
				}
				if(p==2&&h==0) {
					Sleep(1000);
					printf("5号无视2号复活权\n");
					Sleep(800);
					printf("直接将其杀死\n\n");
					h=1;
				}
				if(p==3&&o==0) {
					Sleep(1000);
					printf("5号无视3号复活权\n");
					Sleep(800);
					printf("直接将其杀死\n\n");
					o=1;
				}
			}
DD:
			if(a[1]==0) {
				if(b==1&&flag==1) goto AA;
				if(f<=2) {
					Sleep(1000);
					printf("1号使用复活权\n");
					f++;
					n++;
					a[1]=1;
					if(f==1) {
						do g=rand()%5+1;
						while(a[g]==0||g==1);
						Sleep(1000);
						printf("并随机诅咒了%d号\n",g);
						if(b==1&&n==2)	couss=1;
						if(g==b&&choos==0&&game<=3||g==5) {
							Sleep(1000);
							printf("%d号开启了无敌卡,免疫诅咒\n\n",b);
							i++;
							goto AA;
						}
						Sleep(1000);
						printf("%d号死了\n\n",g);
						a[g]=0;
						n--;
					}
				} else	a[1]=0;
			}
			if(a[2]==0&&h==0) {
				if(b==2&&flag==1) goto AA;
				Sleep(1000);
				printf("2号使用复活权\n");
				n++;
				a[2]=2;
				do m=rand()%5+1;
				while(a[m]==0||m==2);
				Sleep(1000);
				printf("并随机诅咒了%d号\n",m);
				if(b==2&&n==2) couss=1;
				if(rand()%2==1) {
					if(m==b&&choos==0&&game<=3||m==5) {
						Sleep(1000);
						printf("%d号开启了无敌卡,免疫诅咒\n\n",b);
						h=1;
						i++;
						goto AA;
					}
					a[m]=0;
					Sleep(1000);
					printf("%d号死了\n\n",m);
					n--;
				} else {
					Sleep(1000);
					printf("但他没死\n\n");
				}
				h=1;
				goto DD;
			}
			if(a[3]==0&&o==0) {
				if(b==3&&flag==1) goto AA;
				Sleep(1000);
				printf("3号使用复活权\n\n");
				a[3]=3;
				o++;
				n++;
			}
			if(n==2) couss=0;
			if(i==4&&a[p]==0) {
				if(n==1) goto GG;
				else {
					Sleep(1000);
					printf("4号使用再次攻击权\n");
					flog=1;
					if(p==b) goto GG;
					else goto AA;
				}
			}
			if(i==4&&a[p]!=0) flog=0;
GG:
			if(a[b]==0&&e==0) {
				if(n==1) {
					num=1;
					goto CC;
				}
				if(shop[1]>=1&&flag==0) {
					Sleep(1000);
					printf("%d号使用复活卡继续游戏\n",b);
					fhk++;
					flag=1;
					a[b]=b;
					shop[1]--;
					if(flog==1) {
						Sleep(1000);
						printf("4号再次攻击权被抵消\n");
						flog=0;
					}
					printf("\n");
					i++;
					n++;
					goto AA;
				}
				printf("你死了,是否继续?是按0,否按1\n");
				scanf("%d",&x);
				if(x==1) {
					num=n;
					goto BB;
				} else if(x==0) e=1,num=n;
			}
			if(flog==0) i++;
			else flog=0;
		}
		if(num==0) num++;
CC:
		for(j=1; j<=5; j++)
			if(a[j]!=0) d=j;
		Sleep(800);
		printf("%d号赢了",d);
		if(d==b) {
			printf("\n恭喜你第1名!赢得30元\n"),money+=30;
			three++,five++,ten++,paim=1;
		} else {
BB:
			Sleep(1000);
			printf("\n结算:你的成绩为第%d名 奖励:",num+1);
			switch(num) {
				case 1:
					printf("20元\n");
					money+=20;
					paim=2;
					break;
				case 2:
					printf("10元\n");
					money+=10;
					paim=3;
					break;
				case 3:
					printf("5元\n");
					money+=5;
					paim=4;
					break;
				case 4:
					printf("无\n");
					paim=5;
					break;
				default:
					printf("(电脑出现未知现象,发生了什么?这是一个bug,待修复)\n");
			}
			three=0,five=0,ten=0;
		}
		printf("游戏结束\n\n是否回到主页?是按0,退出游戏按1,退出钱将清零\n");
		scanf("%d",&again);
		if(again==0) {
			printf("\n\n");
			return main();
		}
		if(again==1) return 0;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值