自制小游戏《扫雷》
  • 板块灌水区
  • 楼主paulpao
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/7/25 16:07
  • 上次更新2023/10/27 18:29:19
查看原帖
自制小游戏《扫雷》
717437
paulpao楼主2022/7/25 16:07

自制的扫雷游戏
不喜勿喷
特权是内测号,有特殊功能,自己摸索
变量名是我随便打的

#include<iostream>
#include<ctime> 
#include<conio.h>
#include<windows.h>
#include<Windows.h> 
#include<cmath>
#include<cstdlib> 
#include<cstring>
#include<cstdio>
#define color(i) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),i)
using namespace std;
int main(){
	char zong,boon[99][99]={" ","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################"},boontemp[99][99];
		srand(time(0));
		string ccaa;
		string myid; 
		bool te=0;
		int te1=0; 
		char mba='y';
		int qzi,num;
		char daoju[5][999]={"神器3级头","超级空投","自动消除","C4炸弹","旗开得胜"}; 
			color(4);
			bool flag1=1;
			int deng[5]={1,1,1,1,1};
			int choice,peaple,ming=0,qi=0,zi=0;
			string id[99999];
			int number[99999],win[99999];
			cout<<"请输入ID:"<<endl;
			cin>>myid;
			if(myid=="神级玩家.数学大王.周义畯"){
				cout<<"您好,尊敬的创世主!"<<endl;
				for(int i=0;i<=4;i++){
					deng[i]=4;
				} 
			}
			else if(myid=="黑客"){
				printf("你好,黑客!\n");
				for(int i=0;i<=4;i++){
					deng[i]=5;
				} 			
			} 
			else if(myid=="爸爸"){
				cout<<"创世主的爸爸,欢迎您"<<endl;  
				for(int i=0;i<=4;i++){
					deng[i]=2;
				} 
				te=1;
			}
			else if(myid=="11"){
				cout<<"您好,创世主的弟弟"<<endl;
				for(int i=0;i<=4;i++){
					deng[i]=3;
				}
				deng[3]=5; 
			}
			else if(myid=="温柔的回旋镖"){
				cout<<"温柔征服一切"<<endl;
				te1=3;
			} 
			else{
				cout<<"你好,游客"<<endl; 
			} 
	cout<<"\t扫雷游戏"<<endl;
	color(6);
	cout<<"用你的智慧排查出所有的地雷吧"<<endl;
	color(8);
	cout<<"按WASD控制光标移动"<<endl;
	color(5);
	cout<<"Q翻开,E插旗"<<endl;	
	color(15); 
	int c4=0;
	system("pause");

	while(mba=='y'){
	char boon[99][99]={" ","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################","############################################"};
	cout<< "请选择你的道具:";
	for(int i=0;i<=4;i++){
		cout<<i+1<<"."<<daoju[i]<<" "<<deng[i]<<"级"<<endl;
	} 
	cin>>choice;
	if(choice>0&&choice<6){
		cout<<"你选择了"<<daoju[choice-1]<<endl; 
	}
	if(choice==1){
		ming=deng[choice-1];
	}
	else if(choice==2){	
		qi=10-(8-deng[choice-1]);
		if(qi>=1){
 
		}
		else{
			qi=1;
		}
		cout<<"超级空投生效,地雷个数-"<<qi<<endl; 
	}
	else if(choice==3){	
		zi=2+deng[choice-1];
		if(zi>=10){
		zi=9;
	}
		cout<<"自动消除生效,自动标记"<<zi<<"个雷"<<endl; 
	}
	else if(choice==4){
		c4=pow((deng[choice-1]+1),2);
		if(c4>=90){
			c4=81;
		}
		cout<<"C4炸弹生效,自动炸开"<<c4<<"个方格"<<endl;
	}
	else if(choice==5){
		 qzi=deng[choice-1]+2;
	}
	else{
		cout<<"你没有获得任何道具"<<endl;
	}
	int nandu;
	cout<<"请选择你所挑战的难度:1.简单 2.中等 3.困难 4.地狱"<<endl;
	cin>>nandu;
	if(nandu>4){
		cout<<"竟敢乱输,接受惩罚吧"<<endl;
		nandu=4;
	}
		int m,n;
	int BOON_number;
	int NUMBER_number;
	if(nandu==1){
	 m=10,n=10;
	 BOON_number=10;
	 BOON_number-=qi;
	 NUMBER_number=100-BOON_number;
	}
	else if(nandu==2){
	m=15,n=15;
	 BOON_number=30;
	 BOON_number-=qi;
	 NUMBER_number=225-BOON_number;
	}
	else if(nandu==3){
	 m=20,n=20;
	 BOON_number=50;
	 BOON_number-=qi;
	 NUMBER_number=400-BOON_number;
	}
	else if(nandu==4){
	m=30,n=30;
	BOON_number=100;
	 BOON_number-=qi;
	NUMBER_number=900-BOON_number;
	}
	int sum;
	bool flag;
	int tempx=1,tempy=1; 
	char a[m+2][n+2]={},cca;
	for(int i=1;i<=BOON_number;i++){
		tempx=rand()%m+1;
		tempy=rand()%n+1;		
		while(a[tempx][tempy]=='*'){
		tempx=rand()%m+1;
		tempy=rand()%n+1;		
		}
		if(zi>0){
			boontemp[tempx][tempy]='!';
			boon[tempx][tempy]='!';
			zi--;
		}
		a[tempx][tempy]='*';
	}
	for(int c=1;c<=m;c++){
		for(int d=1;d<=n;d++){
			sum=48;
			if(a[c][d]!='*'){
				if(a[c+1][d+1]=='*'){
				sum++;
			}
				if(a[c-1][d-1]=='*'){
				sum++;
			}
				if(a[c+1][d-1]=='*'){
				sum++;
			}
				if(a[c-1][d+1]=='*'){
				sum++;
			}
				if(a[c][d-1]=='*'){
				sum++;
			}
				if(a[c][d+1]=='*'){
				sum++;
			}
				if(a[c+1][d]=='*'){
				sum++;
			}
				if(a[c-1][d]=='*'){
				sum++;
			}
			a[c][d]=(char)sum;
			}
		}
	}
		int xxxx=0,yyyy=0;
	while(c4>0){ 
		xxxx=rand()%m+1;
		yyyy=rand()%n+1;
		while(a[xxxx][yyyy]=='*'&&boontemp[xxxx][yyyy]!='#'){
			xxxx=rand()%m+1;
			yyyy=rand()%n+1;
		}
		boontemp[xxxx][yyyy]=a[xxxx][yyyy];
		boon[xxxx][yyyy]=a[xxxx][yyyy];
		c4--;
		NUMBER_number--; 
	} 
	for(int i=1;i<=m+1;i++){
		for(int j=1;j<=n+1;j++){
			cout<<boon[i][j];
			boontemp[i][j]=boon[i][j];
		}
		cout<<endl;
	}

	boon[5][5]=' ';
	int xx=5,yy=5;
	while(true){
		cca = getch();
		system("cls"); 
		if(cca == 'w'){
			if(xx-1>=1){
				boon[xx][yy] =boontemp[xx][yy];
				--xx;
				boon[xx][yy] = ' ';
			}
		}
		if(cca == 'a'){
			if(yy-1>=1){
					boon[xx][yy] =boontemp[xx][yy];
				--yy;
					boon[xx][yy] = ' ';
			}
		}
		if(cca == 's'){
			if(xx+1 <=m+1){
					boon[xx][yy] =boontemp[xx][yy];
				++xx;
				boon[xx][yy] = ' ';
			}
		}
		if(cca == 'd'){
			if(yy+1 <=n+1){
					boon[xx][yy] =boontemp[xx][yy];
				++yy;
				boon[xx][yy] = ' ';
			}
		}
		if(cca=='q'&&(boontemp[xx][yy]=='#' or boontemp[xx][yy]=='!')){
			if(a[xx][yy]!='*'){
				if(te&&(a[xx][yy]=='2'||a[xx][yy]=='3')){
				for(int i=-1;i<=1;i++){
					for(int j=-1;j<=1;j++){
						if(a[xx+i][yy+j]=='*'&&te==1){
							boon[xx+i][yy+j]='!';
							boontemp[xx+i][yy+j]='!';
							te=0;
						}
					}
				}
				te=1;
				boon[xx][yy]=a[xx][yy];
				boontemp[xx][yy]=a[xx][yy];
				NUMBER_number--; 
			}
			else{
				boon[xx][yy]=a[xx][yy];
				boontemp[xx][yy]=a[xx][yy];
				NUMBER_number--; 
			}
			}
			else{
				if(ming>=1){
					ming--;
					cout<<"神器三级头生效,保护了你"<<endl;
					 				boon[xx][yy]=a[xx][yy];
					 				boontemp[xx][yy]=a[xx][yy];
				}
				else{
				MessageBox(0,"GAME OVER!!!","警告",MB_OK);
				boon[xx][yy]=a[xx][yy];
				for(int i=1;i<=m;i++){
					for(int j=1;j<=n;j++){
						cout<<boon[i][j];
					}
					cout<<endl;
				}
				system("pause");
					system("cls");
					color(4);
					cout<<"GAME OVER!!!"<<endl;
					cout<<"你是否再来一盘(y/n)"<<endl;  
					cin>>mba;
					if(mba!='y'){
						cout<<"感谢你游玩此游戏" <<endl; 
					return 0;
				}
				else{
					color(15);
					break;
				} 
					color(15);  
				}
			}
		}
		if(cca=='e'&&boontemp[xx][yy]=='#'){
			if(qzi>0&&a[xx][yy]!='*'){
				cout<<"旗开得胜生效,翻开标记错误的地方,共3次机会"<<endl;
				boon[xx][yy]=a[xx][yy];
				boontemp[xx][yy]=a[xx][yy];
				NUMBER_number--;
				qzi--;
			}
			else{
				boon[xx][yy]='!';
				boontemp[xx][yy]='!';
			} 
		}
		else if(cca=='o'&&te1>=1){
			cout<<a[xx][yy]<<endl;
			te1--;
		}
		if(NUMBER_number<=0){
				MessageBox(0,"You win!","恭喜",MB_OK);
				boon[xx][yy]=a[xx][yy];
				for(int i=1;i<=m;i++){
					for(int j=1;j<=n;j++){
						cout<<boon[i][j];
					}
					cout<<endl;
				}
				system("pause");
					system("cls");
					color(6);
					cout<<"YOU WIN!"<<daoju[choice-1]<<"升级!"<<endl;
					deng[choice-1]++;
					color(15);
					cout<<"你是否再来一盘(y/n)"<<endl;  
					cin>>mba;
					if(mba!='y'){
						cout<<"感谢你游玩此游戏" <<endl; 
					return 0;
				}
				else{
					color(15);
					break;
				}
			}

		cout<<NUMBER_number<<endl; 
		for(int i=1;i<=m;i++){
			for(int j=1;j<=n;j++){
			cout<<boon[i][j];
		}

		cout<<endl;
	} 
	}
}
	return 0;
} 
2022/7/25 16:07
加载中...