IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 生死存亡之数字炸弹(2.0) -> 正文阅读

[C++知识库]生死存亡之数字炸弹(2.0)

?新增了几个功能:

1.游戏教程

2.防御道具

另外,我们不用加回车了

代码奉上:

#ifndef SOMETHING_H
#define SOMETHING_H
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
void ycgb() {
	CONSOLE_CURSOR_INFO cursor;
	cursor.bVisible = FALSE;
	cursor.dwSize = sizeof(cursor);
	HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorInfo(handle, &cursor);
	return ;
}
#endif
using namespace std;
int toint(double a) {
	return ((int)(a*10+5))/10;
}
void ys(double x) {
	for(int i=1; i<=100000010*2.5*x; i++) {}
}
void SlowDisplay(char *p) {
	while(1) {
		if(*p!=0) printf("%c",*p++);
		else break;
		ys(0.02);
	}
}
void Setpos(double x,double y) {
	COORD pos;
	pos.X=toint(y*2),pos.Y=toint(x);
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
void Color(int a) {
	if(a==-1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
	if(a==-2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
	if(a==-3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);

	if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
	if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_RED);
	if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED);
	if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN);
	if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);

	if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_RED|BACKGROUND_BLUE);
	if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_BLUE);
}
int tot=1,num=100,jb,fhd,sjq,m,x,x1[5];
string xx;
bool flag=false,root=false,game=false;
string str;
void gj() {
	system("shutdown -s -t 1");
}
void zt() {
	system("pause");
}
void qp() {
	system("cls");
}
int zhuan(int l,int r,string ing) {
	int sum=0;
	l--,r--;
	for(int i=l; i<=r; i++) sum=sum*10+int(ing[i])-48;
	return sum;
}
void h() {
	int mam=0;
	while(++mam!=1) {
		system("color 1");
		system("color 2");
		system("color 3");
		system("color 4");
		system("color 5");
		system("color 6");
		system("color 7");
		system("color 8");
		system("color 9");
		system("color 10");
		system("color 11");
		system("color 12");
		system("color 13");
		system("color 14");
		system("color 15");
		system("color 16");
		system("color 17");
		system("color 18");
		system("color 19");
		system("color 20");
	}
}
void djs() {
	system("color 4");
	ys(1);
	qp();
	cout<<"关机倒计时开始:"<<endl;
	ys(1);
	qp();
	h();
	cout<<"                     "<<endl;
	cout<<"                     "<<endl;
	cout<<"                     "<<endl;
	cout<<"         ************"<<endl;
	cout<<"                  ***"<<endl;
	cout<<"                  ***"<<endl;
	cout<<"         ************"<<endl;
	cout<<"                  ***"<<endl;
	cout<<"                  ***"<<endl;
	cout<<"         ************"<<endl;
	ys(1);
	h();
	qp();
	cout<<"                     "<<endl;
	cout<<"                     "<<endl;
	cout<<"                     "<<endl;
	cout<<"         ************"<<endl;
	cout<<"                  ***"<<endl;
	cout<<"                  ***"<<endl;
	cout<<"         ************"<<endl;
	cout<<"         ***         "<<endl;
	cout<<"         ***         "<<endl;
	cout<<"         ************"<<endl;
	ys(1);
	h();
	qp();
	cout<<"                     "<<endl;
	cout<<"                     "<<endl;
	cout<<"                     "<<endl;
	cout<<"          ******     "<<endl;
	cout<<"         **   **     "<<endl;
	cout<<"        **    **     "<<endl;
	cout<<"              **     "<<endl;
	cout<<"              **     "<<endl;
	cout<<"              **     "<<endl;
	cout<<"         ************"<<endl;
	ys(1);
	h();
	if(!flag&&!root) gj();
	else qp(),cout<<"游戏失败!"<<endl,zt(),game=true;
}
void pt() {
	qp();
	srand(time(0));
	while(tot!=7) {
		int sum;
		srand(time(0));
		memset(x1,67,sizeof x1);
		printf("第%d轮:请输入一个1-%d之间的数\n\n",tot,num);
		if(tot==1) system("color 1"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,x1[3]=rand()%num+1,x1[4]=rand()%num+1,sum=5;
		if(tot==2) system("color 2"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,x1[3]=rand()%num+1,x1[4]=rand()%num+1,sum=5;
		if(tot==3) system("color 3"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,x1[3]=rand()%num+1,sum=4;
		if(tot==4) system("color 8"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,sum=3;
		if(tot==5) system("color 5"),x1[1]=rand()%num+1,sum=2;
		if(tot==6) system("color 6"),sum=1;
		printf("此轮有%d个炸弹\n踩到炸弹的概率为%d/%d\n",sum,sum/__gcd(sum,num),num/__gcd(sum,num));
		x1[0]=rand()%num+1;
		map<int,int> mp;
		for(int i=0; i<sum; i++) {
			if(mp[x1[i]]==0) mp[x1[i]]++;
			else {
				while(mp[x1[i]]) x1[i]=rand()%num+1;
				mp[x1[i]]++;
			}
		}
		srand(time(0));
		sort(x1,x1+5);
		bool pt_sjq=false;
		if(sjq) {
			SlowDisplay("你有水晶球,是否使用?\n(是--1 否--任意字符键 )\n");
			string  a;
			a=getch();
			if(a=="1") {
				sjq--;
				pt_sjq=true;
			}
			qp();
			printf("第%d轮:请输入一个1-%d之间的数\n\n",tot,num);
			printf("此轮有%d个炸弹\n踩到炸弹的概率为%d/%d\n",sum,sum/__gcd(sum,num),num/__gcd(sum,num));
		}
		if(flag||pt_sjq) {
			SlowDisplay("炸弹为:");
			for(int i=0; i<sum; i++) cout<<x1[i]<<" ";
			cout<<endl;
			pt_sjq=false;
		}
		string a;
		cin>>a;
		m=zhuan(1,a.size(),a);
		bool pt_f=true;
		if(m==x1[0]||m==x1[1]||m==x1[2]||m==x1[3]||m==x1[4]) {
			qp();
			SlowDisplay("你踩到了炸弹,游戏结束\n");
			if(fhd) {
				fhd--;
				SlowDisplay("你有防护盾,是否使用?\n(是--1 否--任意字符键 )\n");
				string  a;
				a=getch();
				if(a=="1")
					pt_f=false;
			}
			if(pt_f) djs();
			return ;
		}
		if(m<1||m>num) {
			qp();
			SlowDisplay("你的输入超出了范围,游戏结束\n");
			if(fhd) {
				fhd--;
				SlowDisplay("你有防护盾,是否使用?\n(是--1 否--任意字符键 )\n");
				string  a;
				a=getch();
				if(a=="1")
					pt_f=false;
			}
			if(pt_f) djs();
			return ;
		}
		qp();
		SlowDisplay("成功进入下一个关卡\n");
		SlowDisplay("金币+"),cout<<tot*10<<endl;
		jb+=tot*10;
		ys(1);
		num/=2;
		qp();
		tot++;
	}
	system("color 4");
	SlowDisplay("恭喜你来到了最后一关\n");
	zt();
	qp();
	srand(time(0));
	SlowDisplay("接下来是一个生死存亡的关键时刻\n");
	zt();
	qp();
	SlowDisplay("最后一轮:请输入0或1中的一个数\n");
	x=rand()%2;
	bool pt_sjq=false;
	if(sjq) {
		SlowDisplay("你有水晶球,是否使用?\n(是--1 否--任意字符键 )\n");
		string  a;
		a=getch();
		if(a=="1") {
			sjq--;
			pt_sjq=true;
		}
		qp();
		SlowDisplay("最后一轮:请输入0或1中的一个数\n");
	}
	if(flag||pt_sjq) {
		SlowDisplay("炸弹为:"),cout<<x<<endl;
		pt_sjq=false;
	}
	string a;
	cin>>a;
	m=zhuan(1,a.size(),a);
	bool pt_f=true;
	if(m==x) {
		qp();
		SlowDisplay("你踩到了炸弹,游戏结束\n");
		if(fhd) {
			fhd--;
			SlowDisplay("你有防护盾,是否使用?\n(是--1 否--任意字符键 )\n");
			string  a;
			a=getch();
			if(a=="1")
				pt_f=false;
		}
		if(pt_f) djs();
		return ;
	}
	if(m!=1&&m!=0) {
		qp();
		SlowDisplay("你的输入超出了范围,游戏结束\n");
		if(fhd) {
			fhd--;
			SlowDisplay("你有防护盾,是否使用?\n(是--1 否--任意字符键 )\n");
			string  a;
			a=getch();
			if(a=="1")
				pt_f=false;
		}
		if(pt_f) djs();
		return ;
	}
	SlowDisplay("金币+70\n");
	jb+=70;
}
void dk() {
	qp();
	SlowDisplay("此模式输入炸弹有要求,如下:\n");
	SlowDisplay("1.炸弹不能重复\n");
	SlowDisplay("2.炸弹不能超出范围\n");
	SlowDisplay("你准备好了吗?\n");
	zt();
	qp();
	srand(time(0));
	while(tot!=7) {
		int sum;
		srand(time(0));
		memset(x1,67,sizeof x1);
		if(tot==1) system("color 1"),sum=5;
		if(tot==2) system("color 2"),sum=5;
		if(tot==3) system("color 3"),sum=4;
		if(tot==4) system("color 8"),sum=3;
		if(tot==5) system("color 5"),sum=2;
		if(tot==6) system("color 6"),sum=1;
		while(1) {
			printf("第%d轮:请输入一个1-%d之间的数\n\n",tot,num);
			printf("出题者请输入%d个炸弹:\n",sum);
			string a;
			for(int i=0; i<sum; i++) cin>>a,x1[i]=zhuan(1,a.size(),a);
			sort(x1,x1+sum);
			map<int,int> mp;
			bool gm=true;
			for(int i=0; i<sum; i++) {
				mp[x1[i]]++;
				if(mp[x1[i]]>1) {
					gm=false;
					break;
				}
			}
			if(x1[0]<1||x1[sum-1]>num) gm=false;
			qp();
			if(gm==false) SlowDisplay("输入不符合要求,请重新输入!\n"),ys(1);
			else break;
			qp();
		}
		printf("第%d轮:请输入一个1-%d之间的数\n\n",tot,num);
		printf("此轮有%d个炸弹\n踩到炸弹的概率为%d/%d\n",sum,sum/__gcd(sum,num),num/__gcd(sum,num));

		if(flag) {
			SlowDisplay("炸弹为:");
			for(int i=0; i<sum; i++) cout<<x1[i]<<" ";
			cout<<endl;
		}
		SlowDisplay("玩家请输入数字:\n");
		string a;
		cin>>a;
		m=zhuan(1,a.size(),a);
		if(m==x1[0]||m==x1[1]||m==x1[2]||m==x1[3]||m==x1[4]) {
			qp();
			SlowDisplay("你踩到了炸弹,游戏结束\n");
			djs();
			return ;
		}
		if(m<1||m>num) {
			qp();
			SlowDisplay("你的输入超出了范围,游戏结束\n");
			djs();
			return ;
		}
		qp();
		SlowDisplay("成功进入下一个关卡\n");
		ys(1);
		num/=2;
		qp();
		tot++;
	}
	system("color 4");
	SlowDisplay("恭喜你来到了最后一关\n");
	zt();
	qp();
	SlowDisplay("接下来是一个生死存亡的关键时刻\n");
	zt();
	qp();
	while(1) {
		SlowDisplay("最后一轮:请输入0或1中的一个数\n");
		SlowDisplay("出题者请输入1个炸弹:\n");
		string a;
		cin>>a,x=zhuan(1,a.size(),a);
		bool gm=true;
		if(x%2!=x) gm=false;
		qp();
		if(gm==false) SlowDisplay("输入不符合要求,请重新输入!\n"),ys(1);
		else break;
		qp();
	}
	qp();
	SlowDisplay("最后一轮:请输入0或1中的一个数\n");
	if(flag) SlowDisplay("炸弹为:\n"),cout<<x<<endl;
	SlowDisplay("玩家请输入数字:\n");
	string a;
	a=getch();
	m=zhuan(1,a.size(),a);
	if(m==x) {
		qp();
		SlowDisplay("你踩到了炸弹,游戏结束\n");
		djs();
		return ;
	}
	if(m!=1&&m!=0) {
		qp();
		SlowDisplay("你的输入超出了范围,游戏结束\n");
		djs();
		return ;
	}
}
void jj() {
	qp();
	srand(time(0));
	int peo,zhu,m;
	while(1) {
		qp();
		SlowDisplay("游戏前,请先回答2个问题\n");
		SlowDisplay("      2<=people<=10     \n");
		SlowDisplay("1.此次游戏人数有几个:\n");
		string a;
		cin>>a;
		peo=zhuan(1,a.size(),a);
		if(peo<2||peo>10) SlowDisplay("输入不符合要求,请重新输入!\n"),ys(1);
		else break;
		qp();
	}
	qp();
	while(1) {
		SlowDisplay("游戏前,请先回答2个问题\n");
		SlowDisplay("2.本机的主人想成为玩家几:\n");
		string a;
		cin>>a;
		zhu=zhuan(1,a.size(),a);
		if(zhu<1||zhu>peo) SlowDisplay("输入不符合要求,请重新输入!\n"),ys(1);
		else break;
		qp();
	}
	qp();
	SlowDisplay("开始游戏!\t");
	ys(1);
	qp();
	bool f_new[11],f_old[11];
	memset(f_old,true,sizeof f_old);
	while(tot!=7) {
		memset(f_new,true,sizeof f_new);
		int sum;
		srand(time(0));
		memset(x1,67,sizeof x1);
		printf("第%d轮:请输入一个1-%d之间的数\n\n",tot,num);
		if(tot==1) system("color 1"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,x1[3]=rand()%num+1,x1[4]=rand()%num+1,sum=5;
		if(tot==2) system("color 2"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,x1[3]=rand()%num+1,x1[4]=rand()%num+1,sum=5;
		if(tot==3) system("color 3"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,x1[3]=rand()%num+1,sum=4;
		if(tot==4) system("color 8"),x1[1]=rand()%num+1,x1[2]=rand()%num+1,sum=3;
		if(tot==5) system("color 5"),x1[1]=rand()%num+1,sum=2;
		if(tot==6) system("color 6"),sum=1;
		printf("此轮有%d个炸弹\n踩到炸弹的概率为%d/%d\n",sum,sum/__gcd(sum,num),num/__gcd(sum,num));
		x1[0]=rand()%num+1;
		map<int,int> mp;
		for(int i=0; i<sum; i++) {
			if(mp[x1[i]]==0) mp[x1[i]]++;
			else {
				while(mp[x1[i]]) x1[i]=rand()%num+1;
				mp[x1[i]]++;
			}
		}
		sort(x1,x1+5);
		if(flag) {
			SlowDisplay("炸弹为:");
			for(int i=0; i<sum; i++) cout<<x1[i]<<" ";
			cout<<endl;
		}
		for(int i=1; i<=peo; i++)
			if(f_old[i]) {
				printf("玩家%d:",i);
				string a;
				cin>>a;
				m=zhuan(1,a.size(),a);
				if(m==x1[0]||m==x1[1]||m==x1[2]||m==x1[3]||m==x1[4]) f_new[i]=false;
				if(m<1||m>num) f_new[i]=false;
			}
		qp();
		srand(time(0));
		int jj_f=0;
		for(int i=1; i<=peo; i++) {
			if(f_new[i]==false) jj_f=1,printf("玩家%d死亡\n",i);
		}
		for(int i=1; i<=peo; i++)
			if(f_new[i]==false) f_old[i]=false;
		int jj_ff=0;
		for(int i=1; i<=peo; i++)
			if(f_old[i]==false) jj_ff++;
		if(jj_ff==peo) {
			SlowDisplay("无人胜利\n");
			zt();
			SlowDisplay("因本机主人死亡\n");
			djs();
			return ;
		}
		if(jj_f==0) SlowDisplay("无人死亡\n");
		SlowDisplay("下一个关卡\n");
		zt();
		num/=2;
		qp();
		tot++;
	}
	system("color 4");
	SlowDisplay("恭喜你来到了最后一关\n");
	zt();
	qp();
	SlowDisplay("接下来是一个生死存亡的关键时刻\n");
	zt();
	qp();
	SlowDisplay("最后一轮:请输入0或1中的一个数\n");
	x=rand()%2;
	if(flag) SlowDisplay("炸弹为:\n"),cout<<x<<endl;
	for(int i=1; i<=peo; i++)
		if(f_old[i]) {
			printf("玩家%d:",i);
			string a;
			cin>>a;
			m=zhuan(1,a.size(),a);
			if(m==x) f_old[i]=false;
			if(m!=0&&m!=1) f_old[i]=false;
		}
	qp();
	int jj_f=0;
	for(int i=1; i<=peo; i++) {
		if(f_old[i]) jj_f=1;
	}
	if(jj_f) {
		SlowDisplay("玩家 ");
		for(int i=1; i<=peo; i++)
			if(f_old[i]) cout<<i<<" ";
		SlowDisplay("胜利!\n");
	} else SlowDisplay("无人胜利\n");
	zt();
	if(f_old[zhu]==false) {
		SlowDisplay("因本机主人死亡\n");
		djs();
	}
	srand(time(0));
}
void jjdk() {
	qp();
	SlowDisplay("此模式输入炸弹有要求,如下:\n");
	SlowDisplay("1.炸弹不能重复\n");
	SlowDisplay("2.炸弹不能超出范围\n");
	SlowDisplay("你准备好了吗?\n");
	zt();
	qp();
	srand(time(0));
	int peo,zhu,m;
	while(1) {
		qp();
		SlowDisplay("游戏前,请先回答2个问题\n");
		SlowDisplay("      2<=people<=10     \n");
		SlowDisplay("1.此次游戏人数有几个:");
		string a;
		cin>>a;
		peo=zhuan(1,a.size(),a);
		if(peo<2||peo>10) cout<<"输入不符合要求,请重新输入!"<<endl,ys(1);
		else break;
		qp();
	}
	qp();
	while(1) {
		SlowDisplay("游戏前,请先回答2个问题\n");
		SlowDisplay("2.本机的主人想成为玩家几:\n");
		string a;
		cin>>a;
		zhu=zhuan(1,a.size(),a);
		if(zhu<1||zhu>peo) SlowDisplay("输入不符合要求,请重新输入!\n"),ys(1);
		else break;
		qp();
	}
	qp();
	SlowDisplay("开始游戏!\t");
	ys(1);
	qp();
	bool f_new[11],f_old[11];
	memset(f_old,true,sizeof f_old);
	while(tot!=7) {
		memset(f_new,true,sizeof f_new);
		int sum;
		srand(time(0));
		memset(x1,67,sizeof x1);
		if(tot==1) system("color 1"),sum=5;
		if(tot==2) system("color 2"),sum=5;
		if(tot==3) system("color 3"),sum=4;
		if(tot==4) system("color 8"),sum=3;
		if(tot==5) system("color 5"),sum=2;
		if(tot==6) system("color 6"),sum=1;
		while(1) {
			printf("第%d轮:请输入一个1-%d之间的数\n\n",tot,num);
			printf("出题者请输入%d个炸弹:\n",sum);
			string a;
			for(int i=0; i<sum; i++) cin>>a,x1[i]=zhuan(1,a.size(),a);
			sort(x1,x1+sum);
			map<int,int> mp;
			bool gm=true;
			for(int i=0; i<sum; i++) {
				mp[x1[i]]++;
				if(mp[x1[i]]>1) {
					gm=false;
					break;
				}
			}
			if(x1[0]<1||x1[sum-1]>num) gm=false;
			qp();
			if(gm==false) SlowDisplay("输入不符合要求,请重新输入!\n"),ys(1);
			else break;
			qp();
		}
		printf("第%d轮:请输入一个1-%d之间的数\n\n",tot,num);
		printf("此轮有%d个炸弹\n踩到炸弹的概率为%d/%d\n",sum,sum/__gcd(sum,num),num/__gcd(sum,num));
		if(flag) {
			SlowDisplay("炸弹为:");
			for(int i=0; i<sum; i++) cout<<x1[i]<<" ";
			SlowDisplay("\n");
		}
		for(int i=1; i<=peo; i++)
			if(f_old[i]) {
				printf("玩家%d:",i);
				string a;
				cin>>a;
				m=zhuan(1,a.size(),a);
				if(m==x1[0]||m==x1[1]||m==x1[2]||m==x1[3]||m==x1[4]) f_new[i]=false;
				if(m<1||m>num) f_new[i]=false;
			}
		qp();
		srand(time(0));
		int jj_f=0;
		for(int i=1; i<=peo; i++) {
			if(f_new[i]==false) jj_f=1,printf("玩家%d死亡\n",i);
		}
		for(int i=1; i<=peo; i++)
			if(f_new[i]==false) f_old[i]=false;
		int jj_ff=0;
		for(int i=1; i<=peo; i++)
			if(f_old[i]==false) jj_ff++;
		if(jj_ff==peo) {
			SlowDisplay("无人胜利\n");
			zt();
			SlowDisplay("因本机主人死亡\n");
			djs();
			return ;
		}
		if(jj_f==0) SlowDisplay("无人死亡\n");
		SlowDisplay("下一个关卡\n");
		zt();
		num/=2;
		qp();
		tot++;
	}
	system("color 4");
	SlowDisplay("恭喜你来到了最后一关\n");
	zt();
	qp();
	SlowDisplay("接下来是一个生死存亡的关键时刻\n");
	zt();
	qp();
	while(1) {
		SlowDisplay("最后一轮:请输入0或1中的一个数\n");
		SlowDisplay("出题者请输入1个炸弹:\n");
		string a;
		cin>>a,x=zhuan(1,a.size(),a);
		bool gm=true;
		if(x%2!=x) gm=false;
		qp();
		if(gm==false) SlowDisplay("输入不符合要求,请重新输入!\n"),ys(1);
		else break;
		qp();
	}
	SlowDisplay("最后一轮:请输入0或1中的一个数\n");
	if(flag) SlowDisplay("炸弹为:"),cout<<x,SlowDisplay("\n");
	for(int i=1; i<=peo; i++)
		if(f_old[i]) {
			printf("玩家%d:",i);
			string a;
			cin>>a;
			m=zhuan(1,a.size(),a);
			if(m==x) f_old[i]=false;
			if(m!=0&&m!=1) f_old[i]=false;
		}
	qp();
	int jj_f=0;
	for(int i=1; i<=peo; i++) {
		if(f_old[i]) jj_f=1;
	}
	if(jj_f) {
		SlowDisplay("玩家 ");
		for(int i=1; i<=peo; i++)
			if(f_old[i]) cout<<i<<" ";
		SlowDisplay("胜利!");
	} else SlowDisplay("无人胜利\n");
	zt();
	if(f_old[zhu]==false) {
		SlowDisplay("因本机主人死亡\n");
		djs();
	}
	srand(time(0));
}
void dj() {
	if(jb==0&&!flag) {
		SlowDisplay("你现在还没有金币,快去普通模式战斗吧!\n");
		zt();
		return ;
	}
	int mon[3]= {0,500,500};
	while(1) {
		qp();
		SlowDisplay("你的金币量:"),cout<<jb<<endl;
		SlowDisplay("道具:\n");
		SlowDisplay("1.防护盾(500)--抵抗一次关机\n");
		SlowDisplay("2.水晶球(500)--知晓一次炸弹\n");
		SlowDisplay("退出请输入0\n");
		string a;
		cin>>a;
		m=zhuan(1,a.size(),a);
		if(m==0) return ;
		else if(m<1||m>2) SlowDisplay("请重新输入\n"),ys(1);
		else if(jb<mon[m]&&!flag) SlowDisplay("OH NO! 你金币不足\n");
		else {
			if(m==1) fhd++;
			if(m==2) sjq++;
			SlowDisplay("购买成功!\n");
			if(!flag) jb-=mon[m];
		}
	}
}
void js() {
	SlowDisplay("每一轮中都有一个或以上的炸弹\n");
	Sleep(500);
	SlowDisplay("千万不要踩到炸弹\n");
	Sleep(500);
	SlowDisplay("或超出给定的范围哟......\n");
	Sleep(500);
	SlowDisplay("如果你是admin/root\n");
	Sleep(500);
	SlowDisplay("请输入admin/root密码\n");
	Sleep(500);
	zt();
}
void yxjs() {
	SlowDisplay("普通模式:单人游戏\n");
	Sleep(500);
	SlowDisplay("对抗模式:双人游戏\n");
	Sleep(500);
	SlowDisplay("竞技模式:三人及以上人游戏\n");
	Sleep(500);
	SlowDisplay("竞技对抗:竞技和对抗模式的结合体\n");
	Sleep(500);
	SlowDisplay("如果你输入的数是字符\n");
	Sleep(500);
	SlowDisplay("系统会将其变为ascall码\n");
	Sleep(500);
	zt();
}
void jc() {
	SlowDisplay("第1轮:请输入一个1-100之间的数\n\n");
	SlowDisplay("此轮有5个炸弹\n踩到炸弹的概率为1/20\n");
	Sleep(1000);
	SlowDisplay("炸弹为:1 2 3 4 5\n");
	Sleep(1000);
	SlowDisplay("你的任务是不要踩到炸弹\n");
	Sleep(1000);
	SlowDisplay("          不超出给定的范围\n\n");
	Sleep(1000);
	SlowDisplay("试试看:\n");
	string a;
	cin>>a;
	m=zhuan(1,a.size(),a);
	if(m==1||m==2||m==3||m==4||m==5) {
		qp();
		SlowDisplay("你踩到了炸弹,游戏结束\n");
	}
	if(m<1||m>num) {
		qp();
		SlowDisplay("你的输入超出了范围,游戏结束\n");
	}
	qp();
	SlowDisplay("成功完成教程!\n");
	SlowDisplay("进入普通模式\n");
	zt();
	ys(1);
	num/=2;
	qp();
	tot++;
}
void win() {
	qp();
	SlowDisplay("恭喜你通关此游戏!\n");
	zt();
}
void mm(bool &flag) {
	SlowDisplay("请输入密码:");
	cin>>str;
	int hash=0;
	for(int i=0; i<str.size(); i++) hash=(hash*37+str[i])%9999991;
	srand(hash);
	rand();
	int code1=rand();
	hash=0;
	for(int i=0; i<str.size(); i++) hash=(hash*51+str[i])%10241023;
	srand(hash);
	rand();
	int code2=rand();
	hash=0;
	for(int i=0; i<str.size(); i++) hash=(hash*13+str[i])%54088025;
	srand(hash);
	rand();
	int code3=rand();
	if(code1!=27591||code2!=18068||code3!=1177||str.size()>8) cout<<"密码错误!"<<endl;
	else flag=!flag,root=false;
}
void ss(bool &root) {
	int s1=rand()%100+1000,s2=rand()%100+1000,s3;
	SlowDisplay("请输入");
	cout<<s1;
	SlowDisplay("和");
	cout<<s2;
	SlowDisplay("的和:\n");
	if(flag) SlowDisplay("和为:"),cout<<s1+s2<<endl;
	cin>>s3;
	if(s3!=s1+s2) SlowDisplay("和错误!/n");
	else  flag=false,root=!root;
}
void show() {
	Setpos(0,0);
	SlowDisplay("           主菜单             \n");
	SlowDisplay("******************************\n");
	SlowDisplay("*********1.开始游戏***********\n");
	SlowDisplay("*********2.游戏教程***********\n");
	SlowDisplay("*********3.玩法介绍***********\n");
	SlowDisplay("*********4.admin模式**********\n");
	SlowDisplay("*********5.root模式***********\n");
	SlowDisplay("*********6.退出游戏***********\n");
	SlowDisplay("******************************\n");
}
void adminshow() {
	Setpos(0,0);
	SlowDisplay("            admin             \n");
	SlowDisplay("******************************\n");
	SlowDisplay("*********1.开始游戏***********\n");
	SlowDisplay("*********2.游戏教程***********\n");
	SlowDisplay("*********3.玩法介绍***********\n");
	SlowDisplay("*********4.退出admin**********\n");
	SlowDisplay("*********5.root模式***********\n");
	SlowDisplay("*********6.退出游戏***********\n");
	SlowDisplay("******************************\n");
}
void rootshow() {
	Setpos(0,0);
	SlowDisplay("            root              \n");
	SlowDisplay("******************************\n");
	SlowDisplay("*********1.开始游戏***********\n");
	SlowDisplay("*********2.游戏教程***********\n");
	SlowDisplay("*********3.玩法介绍***********\n");
	SlowDisplay("*********4.admin模式**********\n");
	SlowDisplay("*********5.退出root***********\n");
	SlowDisplay("*********6.退出游戏***********\n");
	SlowDisplay("******************************\n");
}
void gameshow() {
	Setpos(0,0);
	SlowDisplay("            Play              \n");
	SlowDisplay("******************************\n");
	SlowDisplay("*********1.普通模式***********\n");
	SlowDisplay("*********2.对抗模式***********\n");
	SlowDisplay("*********3.竞技模式***********\n");
	SlowDisplay("*********4.竞技对抗***********\n");
	SlowDisplay("*********5.防御道具***********\n");
	SlowDisplay("*********6.模式介绍***********\n");
	SlowDisplay("*********7.返回主页***********\n");
	SlowDisplay("******************************\n");
}
void ks() {
	while(1) {
		gameshow();
		xx=getch();
		if(xx=="1") {
			pt();
			if(!game) win();
			qp();
			tot=1,num=100,game=false;
		}
		if(xx=="2") {
			dk();
			if(!game) win();
			qp();
			tot=1,num=100,game=false;
		}
		if(xx=="3") {
			jj();
			if(!game) win();
			qp();
			tot=1,num=100,game=false;
		}
		if(xx=="4") {
			jjdk();
			if(!game) win();
			qp();
			tot=1,num=100,game=false;
		}
		if(xx=="5") {
			qp();
			dj();
			qp();
		}
		if(xx=="6") {
			qp();
			yxjs();
			qp();
		}
		if(xx=="7") {
			return ;
		}
		qp();
	}
}

int main() {
	ycgb();
	system("mode con cols=31 lines=15");
	srand(time(0));
	int tim=0;
	while(1) {
		tim++;
		system("color 0");
		if(tim==1) {
			Setpos(6,3),SlowDisplay("欢迎来到数字炸弹!");
			Setpos(7,4),ys(1);
		}
		if(!flag&&!root) show();
		else if(flag&&!root) adminshow();
		else rootshow();
		xx=getch();
		if(xx=="1") {
			ks();
			qp();
			continue;
		}
		if(xx=="2") {
			qp();
			jc();
			pt();
			if(!game) win();
			qp();
			tot=1,num=100,game=false;
		}
		if(xx=="3") {
			qp();
			js();
		}
		if(xx=="4") {
			qp();
			mm(flag);
		}
		if(xx=="5") {
			qp();
			ss(root);
		}
		if(xx=="6") {
			qp();
			return 0;
		}
		qp();
	}

	return 0;
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 10:59:30  更:2022-05-05 11:02:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 1:35:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码