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++知识库 -> c++编游戏-扫雷-c++游戏将彩色化-windows7自带扫雷游戏休闲娱乐 -> 正文阅读

[C++知识库]c++编游戏-扫雷-c++游戏将彩色化-windows7自带扫雷游戏休闲娱乐

前言

windows一直有自带小游戏,其中一个便是扫雷。扫雷是一个十分经典的游戏,学会了这个代码怎么写,你也会做一些题了——比如连通块,片区面积,等等。

关于扫雷

作者的扫雷,共

1095行,

28619个字符,

3个函数,

内存2.9MB。

测试环境:

Windows7,

c++编译器5.11

创作此代码历经3个月,104次测试,少量bug,暂时没找到问题。#不影响使用#

代码分解

(完整代码放在篇尾,如果实在复制地恼火,点击下面链接免费下载cpp文件)

(文件正在审核中)

文件的开头

#include<conio.h>
#include<stdlib.h>
#include<windows.h>
#include<bits/stdc++.h>
using namespace std;
int again=0,hang,lie,lei,jsq,sjhang,sjlie,cj[40][40],i,j,k,ms=0,sum=0,lose=0;
char tmp[40][40],play[40][40],input;

函数3个,分别指:

空格查找模块

修改模式模块

主函数。

void space(int i,int j);
void moshi();
int main()

前面是菜单和初始化:

int main()
{
	HANDLE consolehwnd;//创建句柄
	consolehwnd=GetStdHandle(STD_OUTPUT_HANDLE);//实例化句柄
	srand(time(NULL));
	while(again==0)
	{
		system("cls");//20
		SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
		cout<<"welcome to minesweeper!\n初级:10X10,10个雷:1\n中级:16X16,40个雷:2\n高级:16X30,99个雷:3\n自定义:其它数字\n";
		cin>>jsq;
		if(jsq==1)hang=10,lie=10,lei=10;
		else if(jsq==2)hang=16,lie=16,lei=40;
		else if(jsq==3)hang=16,lie=30,lei=99;
		else
		{
			system("cls");
			cout<<"行数:";
			cin>>hang;
			cout<<"列数:";
			cin>>lie;
			cout<<"雷数:";
			cin>>lei;
			if(hang<9)hang=9;
			if(hang>24)hang=24;
			if(lie<9)lie=9;
			if(lie>30)lie=30;
			if(lei>688)lei=688;
			if(lei<10)lei=10;
			if(lei<hang*lie/72)lei=hang*lie/72;
			if(lei>hang*lie*9/10)lei=hang*lie*9/10;//变量的准备
		}
		cout<<"开启开局作弊?开:1,关:0\n";
		cin>>jsq;
		cout<<"------------------------------\n";
		for(i=0; i<hang+1; ++i)//22
		{
			for(j=0; j<lie+1; ++j)
			{
				tmp[i][j]='0';
			}
		}//初始化地图为0
		for(i=0; i<lei; ++i)//39
		{
			sjhang=rand()%hang+1,sjlie=rand()%lie+1;
			while(tmp[sjhang][sjlie]=='*')
			{
				sjhang=rand()%hang+1,sjlie=rand()%lie+1;
			}
			tmp[sjhang][sjlie]='*';
		}//随机设置雷
		for(i=1; i<=hang; ++i) //54
		{
			for(j=1; j<=lie; ++j)
			{
				if(tmp[i  ][j  ]=='*')continue;
				if(tmp[i-1][j-1]=='*')tmp[i][j]++;
				if(tmp[i-1][j  ]=='*')tmp[i][j]++;
				if(tmp[i-1][j+1]=='*')tmp[i][j]++;
				if(tmp[i  ][j+1]=='*')tmp[i][j]++;
				if(tmp[i+1][j+1]=='*')tmp[i][j]++;
				if(tmp[i+1][j  ]=='*')tmp[i][j]++;
				if(tmp[i+1][j-1]=='*')tmp[i][j]++;
				if(tmp[i  ][j-1]=='*')tmp[i][j]++;
			}
		}//数字
		for(i=1; i<=hang; ++i) //69
		{
			for(j=1; j<=lie; ++j)
			{
				if(tmp[i][j]=='0')
				{
					tmp[i][j]=' ';
				}
			}
		}//空格
		for(i=1; i<=hang; ++i)
		{
			for(j=1; j<=lie; ++j)
			{
				play[i][j]=(char)30;
			}
		}
		//begin
		SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_GREEN);
		cout<<"正在准备棋盘.";
		Sleep(1000/3);
		cout<<".";
		Sleep(1000/3);
		cout<<".";
		Sleep(1000/3);
		cout<<".";
		Sleep(1000/3);
		cout<<".";
		Sleep(1000/3);
		cout<<".";
		Sleep(1000/3);
		if(jsq==1)
		{
			cout<<"\n正在进行作弊.";
			Sleep(1000/3);
			cout<<".";
			Sleep(1000/3);
			cout<<".";
			Sleep(1000/3);
			cout<<".";
			Sleep(1000/3);
			cout<<".";
			Sleep(1000/3);
			cout<<".";
			Sleep(1000/3);
			sjhang=rand()%hang+1,sjlie=rand()%lie+1;
			jsq=0;
			while(tmp[sjhang][sjlie]!=' '&&jsq<hang*lie)
			{
				sjhang=rand()%hang+1,sjlie=rand()%lie+1;
				jsq++;
			}
			while(tmp[sjhang][sjlie]=='*')
			{
				sjhang=rand()%hang+1,sjlie=rand()%lie+1;
				jsq++;
			}
			play[sjhang][sjlie]=tmp[sjhang][sjlie];
			if(jsq<hang*lie||jsq==hang*lie)
			space(sjhang,sjlie);
		}

100行。

判断是否胜利和输入板块:

while(jsq!=lei)
		{
			system("cls");
			jsq=0,sum=0;
			for(i=0; i<=hang; ++i)//484
			{
				if(i==0)
				{
					SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
					cout<<' ';
					for(k=0; k<=lie; ++k)
					{
						if(k<10)cout<<k<<' ';
						else cout<<k;
					}
					cout<<'\n';
					continue;
				}
				for(j=0; j<=lie; ++j)
				{
					if(j==0)
					{
						SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
						cout<<setw(2)<<i<<' ';
						SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
						continue;
					}
					if(play[i][j]==(char)30||play[i][j]==(char)19)jsq++;
					if(play[i][j]==(char)30||play[i][j]==' ')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
					if(play[i][j]==(char)19)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
					if(play[i][j]=='1')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
					if(play[i][j]=='2')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
					if(play[i][j]=='3')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
					if(play[i][j]=='4')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
					if(play[i][j]=='5')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);
					if(play[i][j]=='6')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
					if(play[i][j]=='7')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
					if(play[i][j]=='8')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
					cout<<play[i][j]<<' ';
					SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
				}
				cout<<'\n';
			}//输出
			if(jsq==lei)//501
			{
				Sleep(1000);
				system("cls");
				for(i=1; i<=hang; ++i)
				{
					for(j=1; j<=lie; ++j)
					{
						if(tmp[i][j]=='*')
						{
							SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
							play[i][j]='*';
						}
						else
						{
							if(play[i][j]==(char)30||play[i][j]==' ')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
							if(play[i][j]==(char)19)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
							if(play[i][j]=='1')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
							if(play[i][j]=='2')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
							if(play[i][j]=='3')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
							if(play[i][j]=='4')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
							if(play[i][j]=='5')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);
							if(play[i][j]=='6')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
							if(play[i][j]=='7')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
							if(play[i][j]=='8')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
						}
						cout<<play[i][j]<<' ';
						SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
					}
					cout<<'\n';
				}
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
				cout<<"You win.\nagain:0\n";
				cin>>again;
				continue;
			}//胜利条件
			sjhang=0,sjlie=0,ms=0,lose=0,sum=0;
			cout<<"当前模式:开方块模式\n";
			cout<<"行数:(切换模式请按A。)";
			while(sjhang%10==0)
			{
				input=getch();
				if(input=='A'||input=='a')
				{
					ms=1;
					moshi();
					break;
				}
				if(input=='/')
				{
					if(sjhang!=0)
					{
						cout<<'\n';
						break;
					}
					else continue;
				}
				if(input=='0')
				{
					sjhang+=10;
					cout<<"+10";
				}
				if(input=='1')
				{
					sjhang+=1;
					cout<<"+1\n";
				}
				if(input=='2')
				{
					sjhang+=2;
					cout<<"+2\n";
				}
				if(input=='3')
				{
					sjhang+=3;
					cout<<"+3\n";
				}
				if(input=='4')
				{
					sjhang+=4;
					cout<<"+4\n";
				}
				if(input=='5')
				{
					sjhang+=5;
					cout<<"+5\n";
				}
				if(input=='6')
				{
					sjhang+=6;
					cout<<"+6\n";
				}
				if(input=='7')
				{
					sjhang+=7;
					cout<<"+7\n";
				}
				if(input=='8')
				{
					sjhang+=8;
					cout<<"+8\n";
				}
				if(input=='9')
				{
					sjhang+=9;
					cout<<"+9\n";
				}
			}
			if(ms==1)
				continue;
			while(sjhang>hang)
			{
				cout<<"无效的输入!请重新输入!\n行数:";
				sjhang=0;
				while(sjhang%10==0)
				{
					input=getch();
					if(input=='/')
					{
						if(sjhang!=0)
						{
							cout<<'\n';
							break;
						}
						else continue;
					}
					if(input=='0')
					{
						sjhang+=10;
						cout<<"+10";
					}
					if(input=='1')
					{
						sjhang+=1;
						cout<<"+1\n";
					}
					if(input=='2')
					{
						sjhang+=2;
						cout<<"+2\n";
					}
					if(input=='3')
					{
						sjhang+=3;
						cout<<"+3\n";
					}
					if(input=='4')
					{
						sjhang+=4;
						cout<<"+4\n";
					}
					if(input=='5')
					{
						sjhang+=5;
						cout<<"+5\n";
					}
					if(input=='6')
					{
						sjhang+=6;
						cout<<"+6\n";
					}
					if(input=='7')
					{
						sjhang+=7;
						cout<<"+7\n";
					}
					if(input=='8')
					{
						sjhang+=8;
						cout<<"+8\n";
					}
					if(input=='9')
					{
						sjhang+=9;
						cout<<"+9\n";
					}
				}
			}
			cout<<"列数:";
			while(sjlie%10==0)
			{
				input=getch();
				if(input=='/')
				{
					if(sjlie!=0)
					{
						cout<<'\n';
						break;
					}
					else continue;
				}
				if(input=='0')
				{
					sjlie+=10;
					cout<<"+10";
				}
				if(input=='1')
				{
					sjlie+=1;
					cout<<"+1\n";
				}
				if(input=='2')
				{
					sjlie+=2;
					cout<<"+2\n";
				}
				if(input=='3')
				{
					sjlie+=3;
					cout<<"+3\n";
				}
				if(input=='4')
				{
					sjlie+=4;
					cout<<"+4\n";
				}
				if(input=='5')
				{
					sjlie+=5;
					cout<<"+5\n";
				}
				if(input=='6')
				{
					sjlie+=6;
					cout<<"+6\n";
				}
				if(input=='7')
				{
					sjlie+=7;
					cout<<"+7\n";
				}
				if(input=='8')
				{
					sjlie+=8;
					cout<<"+8\n";
				}
				if(input=='9')
				{
					sjlie+=9;
					cout<<"+9\n";
				}
			}
			while(sjlie>lie)
			{
				cout<<"无效的输入!请重新输入!\n列数:";
				sjlie=0;
				while(sjlie%10==0)
				{
					input=getch();
					if(input=='/')
					{
						if(sjlie!=0)
						{
							cout<<'\n';
							break;
						}
						else continue;
					}
					if(input=='0')
					{
						sjlie+=10;
						cout<<"+10";
					}
					if(input=='1')
					{
						sjlie+=1;
						cout<<"+1\n";
					}
					if(input=='2')
					{
						sjlie+=2;
						cout<<"+2\n";
					}
					if(input=='3')
					{
						sjlie+=3;
						cout<<"+3\n";
					}
					if(input=='4')
					{
						sjlie+=4;
						cout<<"+4\n";
					}
					if(input=='5')
					{
						sjlie+=5;
						cout<<"+5\n";
					}
					if(input=='6')
					{
						sjlie+=6;
						cout<<"+6\n";
					}
					if(input=='7')
					{
						sjlie+=7;
						cout<<"+7\n";
					}
					if(input=='8')
					{
						sjlie+=8;
						cout<<"+8\n";
					}
					if(input=='9')
					{
						sjlie+=9;
						cout<<"+9\n";
					}
				}
			}

490行。

判断是否失败和空格处理板块:

if(play[sjhang][sjlie]==' ')//开前为space
			{
				system("cls");
				cout<<"无效的输入!";
				Sleep(1000);
				continue;
			}
			else if(play[sjhang][sjlie]==(char)30||play[sjhang][sjlie]==(char)19)//开前为未开或者是标的雷
			{
				play[sjhang][sjlie]=tmp[sjhang][sjlie];//赋值
				if(play[sjhang][sjlie]=='*')//799
				{
					system("cls");
					for(i=1; i<=hang; ++i)
					{
						for(j=1; j<=lie; ++j)
						{
							if(tmp[i][j]=='*')
							{
								if(i==sjhang&&j==sjlie)
									SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
								else
									SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
							}
							else
							{
								if(tmp[i][j]==' ')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
								if(tmp[i][j]==(char)19)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
								if(tmp[i][j]=='1')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
								if(tmp[i][j]=='2')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
								if(tmp[i][j]=='3')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
								if(tmp[i][j]=='4')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
								if(tmp[i][j]=='5')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);
								if(tmp[i][j]=='6')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
								if(tmp[i][j]=='7')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
								if(tmp[i][j]=='8')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
							}
							cout<<tmp[i][j]<<' ';
							SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
						}
						cout<<'\n';
					}
					Sleep(1000);
					SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
					cout<<"You lose.\nagain?:0\n";
					cin>>again;
					break;
				}//踩到了雷
				else if(play[sjhang][sjlie]==' ')//806
				{
					space(sjhang,sjlie);
					for(i=0; i<=hang+1; ++i)
						for(j=0; j<=lie+1; ++j)
							cj[i][j]=0;
				}//踩到了空格
			}
			else if(play[sjhang][sjlie]!=' '&&play[sjhang][sjlie]!=(char)19&&play[sjhang][sjlie]!=(char)30)//开前为数字
			{
				jsq=(int)play[sjhang][sjlie]-48;
				if(tmp[sjhang-1][sjlie-1]=='*'&&play[sjhang-1][sjlie-1]==(char)19)sum++;
				if(tmp[sjhang-1][sjlie  ]=='*'&&play[sjhang-1][sjlie  ]==(char)19)sum++;
				if(tmp[sjhang-1][sjlie+1]=='*'&&play[sjhang-1][sjlie+1]==(char)19)sum++;
				if(tmp[sjhang  ][sjlie+1]=='*'&&play[sjhang  ][sjlie+1]==(char)19)sum++;
				if(tmp[sjhang+1][sjlie+1]=='*'&&play[sjhang+1][sjlie+1]==(char)19)sum++;
				if(tmp[sjhang+1][sjlie  ]=='*'&&play[sjhang+1][sjlie  ]==(char)19)sum++;
				if(tmp[sjhang+1][sjlie-1]=='*'&&play[sjhang+1][sjlie-1]==(char)19)sum++;
				if(tmp[sjhang  ][sjlie-1]=='*'&&play[sjhang  ][sjlie-1]==(char)19)sum++;

				if(tmp[sjhang-1][sjlie-1]!='*'&&play[sjhang-1][sjlie-1]==(char)19)
				{
					play[sjhang-1][sjlie-1]='X';
					lose++;
				}
				if(tmp[sjhang-1][sjlie  ]!='*'&&play[sjhang-1][sjlie  ]==(char)19)
				{
					play[sjhang-1][sjlie  ]='X';
					lose++;
				}
				if(tmp[sjhang-1][sjlie+1]!='*'&&play[sjhang-1][sjlie+1]==(char)19)
				{
					play[sjhang-1][sjlie+1]='X';
					lose++;
				}
				if(tmp[sjhang  ][sjlie+1]!='*'&&play[sjhang  ][sjlie+1]==(char)19)
				{
					play[sjhang  ][sjlie+1]='X';
					lose++;
				}
				if(tmp[sjhang+1][sjlie+1]!='*'&&play[sjhang+1][sjlie+1]==(char)19)
				{
					play[sjhang+1][sjlie+1]='X';
					lose++;
				}
				if(tmp[sjhang+1][sjlie  ]!='*'&&play[sjhang+1][sjlie  ]==(char)19)
				{
					play[sjhang+1][sjlie  ]='X';
					lose++;
				}
				if(tmp[sjhang+1][sjlie-1]!='*'&&play[sjhang+1][sjlie-1]==(char)19)
				{
					play[sjhang+1][sjlie-1]='X';
					lose++;
				}
				if(tmp[sjhang  ][sjlie-1]!='*'&&play[sjhang  ][sjlie-1]==(char)19)
				{
					play[sjhang  ][sjlie-1]='X';
					lose++;
				}

				if(sum==jsq&&lose==0)
				{
					if(play[sjhang-1][sjlie-1]!=(char)19&&play[sjhang-1][sjlie-1]!=' ')
					{
						play[sjhang-1][sjlie-1]=tmp[sjhang-1][sjlie-1];
						if(play[sjhang-1][sjlie-1]==' ')space(sjhang-1,sjlie-1);
					}
					if(play[sjhang-1][sjlie  ]!=(char)19&&play[sjhang-1][sjlie  ]!=' ')
					{
						play[sjhang-1][sjlie  ]=tmp[sjhang-1][sjlie  ];
						if(play[sjhang-1][sjlie  ]==' ')space(sjhang-1,sjlie  );
					}
					if(play[sjhang-1][sjlie+1]!=(char)19&&play[sjhang-1][sjlie+1]!=' ')
					{
						play[sjhang-1][sjlie+1]=tmp[sjhang-1][sjlie+1];
						if(play[sjhang-1][sjlie+1]==' ')space(sjhang-1,sjlie+1);
					}
					if(play[sjhang  ][sjlie+1]!=(char)19&&play[sjhang  ][sjlie+1]!=' ')
					{
						play[sjhang  ][sjlie+1]=tmp[sjhang  ][sjlie+1];
						if(play[sjhang  ][sjlie+1]==' ')space(sjhang  ,sjlie+1);
					}
					if(play[sjhang+1][sjlie+1]!=(char)19&&play[sjhang+1][sjlie+1]!=' ')
					{
						play[sjhang+1][sjlie+1]=tmp[sjhang+1][sjlie+1];
						if(play[sjhang+1][sjlie+1]==' ')space(sjhang+1,sjlie+1);
					}
					if(play[sjhang+1][sjlie  ]!=(char)19&&play[sjhang+1][sjlie  ]!=' ')
					{
						play[sjhang+1][sjlie  ]=tmp[sjhang+1][sjlie  ];
						if(play[sjhang+1][sjlie  ]==' ')space(sjhang+1,sjlie  );
					}
					if(play[sjhang+1][sjlie-1]!=(char)19&&play[sjhang+1][sjlie-1]!=' ')
					{
						play[sjhang+1][sjlie-1]=tmp[sjhang+1][sjlie-1];
						if(play[sjhang+1][sjlie-1]==' ')space(sjhang+1,sjlie-1);
					}
					if(play[sjhang  ][sjlie-1]!=(char)19&&play[sjhang  ][sjlie-1]!=' ')
					{
						play[sjhang  ][sjlie-1]=tmp[sjhang  ][sjlie-1];
						if(play[sjhang  ][sjlie-1]==' ')space(sjhang  ,sjlie-1);
					}
				}
				else if(lose>0)
				{
					system("cls");
					for(i=1; i<=hang; ++i)
					{
						for(j=1; j<=lie; ++j)
						{
							if(play[i][j]=='*')
							{
								if(i==sjhang&&j==sjlie)
									SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
								else
									SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
							}
							else if(play[i][j]=='X')
							{
								SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_GREEN);
							}
							else
							{

								if(play[i][j]==(char)30||play[i][j]==' ')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
								if(play[i][j]==(char)19)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
								if(play[i][j]=='1')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
								if(play[i][j]=='2')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
								if(play[i][j]=='3')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
								if(play[i][j]=='4')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
								if(play[i][j]=='5')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);
								if(play[i][j]=='6')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
								if(play[i][j]=='7')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
								if(play[i][j]=='8')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
							}
							cout<<play[i][j]<<' ';
							SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
						}
						cout<<'\n';
					}
					Sleep(1000);
					SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
					cout<<"You lose.\nagain?:0\n";
					cin>>again;
					break;
				}
				else if(sum<jsq)
				{
					system("cls");
					cout<<"条件不满足!";
					Sleep(1000);
					continue;
				}
			}
		}
	}
	return 0;
}

主函数完了。

700行。

两个函数:

void moshi()
{
	HANDLE consolehwnd;//创建句柄
	consolehwnd=GetStdHandle(STD_OUTPUT_HANDLE);//实例化句柄
	system("cls");
	jsq=0;
	for(i=0; i<=hang; ++i)
	{
		if(i==0)
		{
			SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
			cout<<' ';
			for(k=0; k<=lie; ++k)
			{
				if(k<10)cout<<k<<' ';
				else cout<<k;
			}
			cout<<'\n';
			continue;
		}
		for(j=0; j<=lie; ++j)
		{
			if(j==0)
			{
				SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
				cout<<setw(2)<<i<<' ';
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
				continue;
			}
			if(play[i][j]==(char)30||play[i][j]==(char)19)jsq++;
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
			if(play[i][j]=='1')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
			if(play[i][j]=='2')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
			if(play[i][j]=='3')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
			if(play[i][j]=='4')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
			if(play[i][j]=='5')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);
			if(play[i][j]=='6')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
			if(play[i][j]=='7')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
			if(play[i][j]=='8')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
			if(play[i][j]==(char)19)SetConsoleTextAttribute(consolehwnd,FOREGROUND_RED);
			cout<<play[i][j]<<' ';
		}
		cout<<'\n';
	}
	sjhang=0,sjlie=0;
	cout<<"当前模式:标雷模式\n";
	cout<<"行数:";
	while(sjhang%10==0)
	{
		input=getch();
		if(input=='/')
		{
			if(sjhang!=0)
			{
				cout<<'\n';
				break;
			}
			else continue;
		}
		if(input=='0')
		{
			sjhang+=10;
			cout<<"+10";
		}
		if(input=='1')
		{
			sjhang+=1;
			cout<<"+1\n";
		}
		if(input=='2')
		{
			sjhang+=2;
			cout<<"+2\n";
		}
		if(input=='3')
		{
			sjhang+=3;
			cout<<"+3\n";
		}
		if(input=='4')
		{
			sjhang+=4;
			cout<<"+4\n";
		}
		if(input=='5')
		{
			sjhang+=5;
			cout<<"+5\n";
		}
		if(input=='6')
		{
			sjhang+=6;
			cout<<"+6\n";
		}
		if(input=='7')
		{
			sjhang+=7;
			cout<<"+7\n";
		}
		if(input=='8')
		{
			sjhang+=8;
			cout<<"+8\n";
		}
		if(input=='9')
		{
			sjhang+=9;
			cout<<"+9\n";
		}
	}
	while(sjhang>hang)
	{
		cout<<"无效的输入!请重新输入!\n行数:";
		while(sjhang%10==0)
		{
			input=getch();
			if(input=='/')
			{
				if(sjhang!=0)
				{
					cout<<'\n';
					break;
				}
				else continue;
			}
			if(input=='0')
			{
				sjhang+=10;
				cout<<"+10";
			}
			if(input=='1')
			{
				sjhang+=1;
				cout<<"+1\n";
			}
			if(input=='2')
			{
				sjhang+=2;
				cout<<"+2\n";
			}
			if(input=='3')
			{
				sjhang+=3;
				cout<<"+3\n";
			}
			if(input=='4')
			{
				sjhang+=4;
				cout<<"+4\n";
			}
			if(input=='5')
			{
				sjhang+=5;
				cout<<"+5\n";
			}
			if(input=='6')
			{
				sjhang+=6;
				cout<<"+6\n";
			}
			if(input=='7')
			{
				sjhang+=7;
				cout<<"+7\n";
			}
			if(input=='8')
			{
				sjhang+=8;
				cout<<"+8\n";
			}
			if(input=='9')
			{
				sjhang+=9;
				cout<<"+9\n";
			}
		}
	}
	cout<<"列数:";
	while(sjlie%10==0)
	{
		input=getch();
		if(input=='/')
		{
			if(sjlie!=0)
			{
				cout<<'\n';
				break;
			}
			else continue;
		}
		if(input=='0')
		{
			sjlie+=10;
			cout<<"+10";
		}
		if(input=='1')
		{
			sjlie+=1;
			cout<<"+1\n";
		}
		if(input=='2')
		{
			sjlie+=2;
			cout<<"+2\n";
		}
		if(input=='3')
		{
			sjlie+=3;
			cout<<"+3\n";
		}
		if(input=='4')
		{
			sjlie+=4;
			cout<<"+4\n";
		}
		if(input=='5')
		{
			sjlie+=5;
			cout<<"+5\n";
		}
		if(input=='6')
		{
			sjlie+=6;
			cout<<"+6\n";
		}
		if(input=='7')
		{
			sjlie+=7;
			cout<<"+7\n";
		}
		if(input=='8')
		{
			sjlie+=8;
			cout<<"+8\n";
		}
		if(input=='9')
		{
			sjlie+=9;
			cout<<"+9\n";
		}
	}
	while(sjlie>lie)
	{
		cout<<"无效的输入!请重新输入!\n列数:";
		while(sjlie%10==0)
		{
			input=getch();
			if(input=='/')
			{
				if(sjlie!=0)
				{
					cout<<'\n';
					break;
				}
				else continue;
			}
			if(input=='0')
			{
				sjlie+=10;
				cout<<"+10";
			}
			if(input=='1')
			{
				sjlie+=1;
				cout<<"+1\n";
			}
			if(input=='2')
			{
				sjlie+=2;
				cout<<"+2\n";
			}
			if(input=='3')
			{
				sjlie+=3;
				cout<<"+3\n";
			}
			if(input=='4')
			{
				sjlie+=4;
				cout<<"+4\n";
			}
			if(input=='5')
			{
				sjlie+=5;
				cout<<"+5\n";
			}
			if(input=='6')
			{
				sjlie+=6;
				cout<<"+6\n";
			}
			if(input=='7')
			{
				sjlie+=7;
				cout<<"+7\n";
			}
			if(input=='8')
			{
				sjlie+=8;
				cout<<"+8\n";
			}
			if(input=='9')
			{
				sjlie+=9;
				cout<<"+9\n";
			}
		}
	}
	if(play[sjhang][sjlie]==' ')
	{
		system("cls");
		cout<<"无效的输入!";
		Sleep(1000);
		moshi();
	}
	play[sjhang][sjlie]=(char)19;
}
void space(int i,int j)
{
	HANDLE consolehwnd;//创建句柄
	consolehwnd=GetStdHandle(STD_OUTPUT_HANDLE);//实例化句柄
	system("cls");
	for(int l=0; l<=hang; ++l)
	{
		if(l==0)
		{
			SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
			cout<<' ';
			for(k=0; k<=lie; ++k)
			{
				if(k<10)cout<<k<<' ';
				else cout<<k;
			}
			cout<<'\n';
			continue;
		}
		for(int m=0; m<=lie; ++m)
		{
			if(m==0)
			{
				SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
				cout<<setw(2)<<l<<' ';
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
				continue;
			}
			if(play[i][j]==(char)30||play[i][j]==(char)19)jsq++;
			if(play[i][j]==(char)30||play[i][j]==' ')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
			if(play[i][j]==(char)19)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
			if(play[i][j]=='1')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
			if(play[i][j]=='2')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
			if(play[i][j]=='3')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
			if(play[i][j]=='4')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
			if(play[i][j]=='5')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);
			if(play[i][j]=='6')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
			if(play[i][j]=='7')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
			if(play[i][j]=='8')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
			cout<<play[i][j]<<' ';
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
		}
		cout<<'\n';
	}
	cj[i][j]=1;
	play[i-1][j-1]=tmp[i-1][j-1],play[i-1][j]=tmp[i-1][j],play[i-1][j+1]=tmp[i-1][j+1],play[i][j+1]=tmp[i][j+1],play[i+1][j+1]=tmp[i+1][j+1],play[i+1][j]=tmp[i+1][j],play[i+1][j-1]=tmp[i+1][j-1],play[i][j-1]=tmp[i][j-1];
	if(i>=1&&j>=1&&i<=hang&&j<=lie)
	{
		if(cj[i-1][j-1]==0&&tmp[i-1][j-1]==' ')
		{
			space(i-1,j-1);
		}
		if(cj[i-1][j]==0&&tmp[i-1][j]==' ')
		{
			space(i-1,j);
		}
		if(cj[i-1][j+1]==0&&tmp[i-1][j+1]==' ')
		{
			space(i-1,j+1);
		}
		if(cj[i][j+1]==0&&tmp[i][j+1]==' ')
		{
			space(i,j+1);
		}
		if(cj[i+1][j+1]==0&&tmp[i+1][j+1]==' ')
		{
			space(i+1,j+1);
		}
		if(cj[i+1][j]==0&&tmp[i+1][j]==' ')
		{
			space(i+1,j);
		}
		if(cj[i+1][j-1]==0&&tmp[i+1][j-1]==' ')
		{
			space(i+1,j-1);
		}
		if(cj[i][j-1]==0&&tmp[i][j-1]==' ')
		{
			space(i,j-1);
		}
	}
}

1100行,完美收工。

完整代码

免复制:(网址还没放上来)

#include<conio.h>
#include<stdlib.h>
#include<windows.h>
#include<bits/stdc++.h>
using namespace std;
int again=0,hang,lie,lei,jsq,sjhang,sjlie,cj[40][40],i,j,k,ms=0,sum=0,lose=0;
char tmp[40][40],play[40][40],input;
void space(int i,int j);
void moshi();
int main()
{
	HANDLE consolehwnd;//创建句柄
	consolehwnd=GetStdHandle(STD_OUTPUT_HANDLE);//实例化句柄
	srand(time(NULL));
	while(again==0)
	{
		system("cls");//20
		SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
		cout<<"welcome to minesweeper!\n初级:10X10,10个雷:1\n中级:16X16,40个雷:2\n高级:16X30,99个雷:3\n自定义:其它数字\n";
		cin>>jsq;
		if(jsq==1)hang=10,lie=10,lei=10;
		else if(jsq==2)hang=16,lie=16,lei=40;
		else if(jsq==3)hang=16,lie=30,lei=99;
		else
		{
			system("cls");
			cout<<"行数:";
			cin>>hang;
			cout<<"列数:";
			cin>>lie;
			cout<<"雷数:";
			cin>>lei;
			if(hang<9)hang=9;
			if(hang>24)hang=24;
			if(lie<9)lie=9;
			if(lie>30)lie=30;
			if(lei>688)lei=688;
			if(lei<10)lei=10;
			if(lei<hang*lie/72)lei=hang*lie/72;
			if(lei>hang*lie*9/10)lei=hang*lie*9/10;//变量的准备
		}
		cout<<"开启开局作弊?开:1,关:0\n";
		cin>>jsq;
		cout<<"------------------------------\n";
		for(i=0; i<hang+1; ++i)//22
		{
			for(j=0; j<lie+1; ++j)
			{
				tmp[i][j]='0';
			}
		}//初始化地图为0
		for(i=0; i<lei; ++i)//39
		{
			sjhang=rand()%hang+1,sjlie=rand()%lie+1;
			while(tmp[sjhang][sjlie]=='*')
			{
				sjhang=rand()%hang+1,sjlie=rand()%lie+1;
			}
			tmp[sjhang][sjlie]='*';
		}//随机设置雷
		for(i=1; i<=hang; ++i) //54
		{
			for(j=1; j<=lie; ++j)
			{
				if(tmp[i  ][j  ]=='*')continue;
				if(tmp[i-1][j-1]=='*')tmp[i][j]++;
				if(tmp[i-1][j  ]=='*')tmp[i][j]++;
				if(tmp[i-1][j+1]=='*')tmp[i][j]++;
				if(tmp[i  ][j+1]=='*')tmp[i][j]++;
				if(tmp[i+1][j+1]=='*')tmp[i][j]++;
				if(tmp[i+1][j  ]=='*')tmp[i][j]++;
				if(tmp[i+1][j-1]=='*')tmp[i][j]++;
				if(tmp[i  ][j-1]=='*')tmp[i][j]++;
			}
		}//数字
		for(i=1; i<=hang; ++i) //69
		{
			for(j=1; j<=lie; ++j)
			{
				if(tmp[i][j]=='0')
				{
					tmp[i][j]=' ';
				}
			}
		}//空格
		for(i=1; i<=hang; ++i)
		{
			for(j=1; j<=lie; ++j)
			{
				play[i][j]=(char)30;
			}
		}
		//begin
		SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_GREEN);
		cout<<"正在准备棋盘.";
		Sleep(1000/3);
		cout<<".";
		Sleep(1000/3);
		cout<<".";
		Sleep(1000/3);
		cout<<".";
		Sleep(1000/3);
		cout<<".";
		Sleep(1000/3);
		cout<<".";
		Sleep(1000/3);
		if(jsq==1)
		{
			cout<<"\n正在进行作弊.";
			Sleep(1000/3);
			cout<<".";
			Sleep(1000/3);
			cout<<".";
			Sleep(1000/3);
			cout<<".";
			Sleep(1000/3);
			cout<<".";
			Sleep(1000/3);
			cout<<".";
			Sleep(1000/3);
			sjhang=rand()%hang+1,sjlie=rand()%lie+1;
			jsq=0;
			while(tmp[sjhang][sjlie]!=' '&&jsq<hang*lie)
			{
				sjhang=rand()%hang+1,sjlie=rand()%lie+1;
				jsq++;
			}
			while(tmp[sjhang][sjlie]=='*')
			{
				sjhang=rand()%hang+1,sjlie=rand()%lie+1;
				jsq++;
			}
			play[sjhang][sjlie]=tmp[sjhang][sjlie];
			if(jsq<hang*lie||jsq==hang*lie)
			space(sjhang,sjlie);
		}
		while(jsq!=lei)
		{
			system("cls");
			jsq=0,sum=0;
			for(i=0; i<=hang; ++i)//484
			{
				if(i==0)
				{
					SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
					cout<<' ';
					for(k=0; k<=lie; ++k)
					{
						if(k<10)cout<<k<<' ';
						else cout<<k;
					}
					cout<<'\n';
					continue;
				}
				for(j=0; j<=lie; ++j)
				{
					if(j==0)
					{
						SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
						cout<<setw(2)<<i<<' ';
						SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
						continue;
					}
					if(play[i][j]==(char)30||play[i][j]==(char)19)jsq++;
					if(play[i][j]==(char)30||play[i][j]==' ')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
					if(play[i][j]==(char)19)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
					if(play[i][j]=='1')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
					if(play[i][j]=='2')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
					if(play[i][j]=='3')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
					if(play[i][j]=='4')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
					if(play[i][j]=='5')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);
					if(play[i][j]=='6')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
					if(play[i][j]=='7')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
					if(play[i][j]=='8')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
					cout<<play[i][j]<<' ';
					SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
				}
				cout<<'\n';
			}//输出
			if(jsq==lei)//501
			{
				Sleep(1000);
				system("cls");
				for(i=1; i<=hang; ++i)
				{
					for(j=1; j<=lie; ++j)
					{
						if(tmp[i][j]=='*')
						{
							SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
							play[i][j]='*';
						}
						else
						{
							if(play[i][j]==(char)30||play[i][j]==' ')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
							if(play[i][j]==(char)19)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
							if(play[i][j]=='1')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
							if(play[i][j]=='2')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
							if(play[i][j]=='3')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
							if(play[i][j]=='4')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
							if(play[i][j]=='5')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);
							if(play[i][j]=='6')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
							if(play[i][j]=='7')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
							if(play[i][j]=='8')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
						}
						cout<<play[i][j]<<' ';
						SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
					}
					cout<<'\n';
				}
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
				cout<<"You win.\nagain:0\n";
				cin>>again;
				continue;
			}//胜利条件
			sjhang=0,sjlie=0,ms=0,lose=0,sum=0;
			cout<<"当前模式:开方块模式\n";
			cout<<"行数:(切换模式请按A。)";
			while(sjhang%10==0)
			{
				input=getch();
				if(input=='A'||input=='a')
				{
					ms=1;
					moshi();
					break;
				}
				if(input=='/')
				{
					if(sjhang!=0)
					{
						cout<<'\n';
						break;
					}
					else continue;
				}
				if(input=='0')
				{
					sjhang+=10;
					cout<<"+10";
				}
				if(input=='1')
				{
					sjhang+=1;
					cout<<"+1\n";
				}
				if(input=='2')
				{
					sjhang+=2;
					cout<<"+2\n";
				}
				if(input=='3')
				{
					sjhang+=3;
					cout<<"+3\n";
				}
				if(input=='4')
				{
					sjhang+=4;
					cout<<"+4\n";
				}
				if(input=='5')
				{
					sjhang+=5;
					cout<<"+5\n";
				}
				if(input=='6')
				{
					sjhang+=6;
					cout<<"+6\n";
				}
				if(input=='7')
				{
					sjhang+=7;
					cout<<"+7\n";
				}
				if(input=='8')
				{
					sjhang+=8;
					cout<<"+8\n";
				}
				if(input=='9')
				{
					sjhang+=9;
					cout<<"+9\n";
				}
			}
			if(ms==1)
				continue;
			while(sjhang>hang)
			{
				cout<<"无效的输入!请重新输入!\n行数:";
				sjhang=0;
				while(sjhang%10==0)
				{
					input=getch();
					if(input=='/')
					{
						if(sjhang!=0)
						{
							cout<<'\n';
							break;
						}
						else continue;
					}
					if(input=='0')
					{
						sjhang+=10;
						cout<<"+10";
					}
					if(input=='1')
					{
						sjhang+=1;
						cout<<"+1\n";
					}
					if(input=='2')
					{
						sjhang+=2;
						cout<<"+2\n";
					}
					if(input=='3')
					{
						sjhang+=3;
						cout<<"+3\n";
					}
					if(input=='4')
					{
						sjhang+=4;
						cout<<"+4\n";
					}
					if(input=='5')
					{
						sjhang+=5;
						cout<<"+5\n";
					}
					if(input=='6')
					{
						sjhang+=6;
						cout<<"+6\n";
					}
					if(input=='7')
					{
						sjhang+=7;
						cout<<"+7\n";
					}
					if(input=='8')
					{
						sjhang+=8;
						cout<<"+8\n";
					}
					if(input=='9')
					{
						sjhang+=9;
						cout<<"+9\n";
					}
				}
			}
			cout<<"列数:";
			while(sjlie%10==0)
			{
				input=getch();
				if(input=='/')
				{
					if(sjlie!=0)
					{
						cout<<'\n';
						break;
					}
					else continue;
				}
				if(input=='0')
				{
					sjlie+=10;
					cout<<"+10";
				}
				if(input=='1')
				{
					sjlie+=1;
					cout<<"+1\n";
				}
				if(input=='2')
				{
					sjlie+=2;
					cout<<"+2\n";
				}
				if(input=='3')
				{
					sjlie+=3;
					cout<<"+3\n";
				}
				if(input=='4')
				{
					sjlie+=4;
					cout<<"+4\n";
				}
				if(input=='5')
				{
					sjlie+=5;
					cout<<"+5\n";
				}
				if(input=='6')
				{
					sjlie+=6;
					cout<<"+6\n";
				}
				if(input=='7')
				{
					sjlie+=7;
					cout<<"+7\n";
				}
				if(input=='8')
				{
					sjlie+=8;
					cout<<"+8\n";
				}
				if(input=='9')
				{
					sjlie+=9;
					cout<<"+9\n";
				}
			}
			while(sjlie>lie)
			{
				cout<<"无效的输入!请重新输入!\n列数:";
				sjlie=0;
				while(sjlie%10==0)
				{
					input=getch();
					if(input=='/')
					{
						if(sjlie!=0)
						{
							cout<<'\n';
							break;
						}
						else continue;
					}
					if(input=='0')
					{
						sjlie+=10;
						cout<<"+10";
					}
					if(input=='1')
					{
						sjlie+=1;
						cout<<"+1\n";
					}
					if(input=='2')
					{
						sjlie+=2;
						cout<<"+2\n";
					}
					if(input=='3')
					{
						sjlie+=3;
						cout<<"+3\n";
					}
					if(input=='4')
					{
						sjlie+=4;
						cout<<"+4\n";
					}
					if(input=='5')
					{
						sjlie+=5;
						cout<<"+5\n";
					}
					if(input=='6')
					{
						sjlie+=6;
						cout<<"+6\n";
					}
					if(input=='7')
					{
						sjlie+=7;
						cout<<"+7\n";
					}
					if(input=='8')
					{
						sjlie+=8;
						cout<<"+8\n";
					}
					if(input=='9')
					{
						sjlie+=9;
						cout<<"+9\n";
					}
				}
			}
			if(play[sjhang][sjlie]==' ')//开前为space
			{
				system("cls");
				cout<<"无效的输入!";
				Sleep(1000);
				continue;
			}
			else if(play[sjhang][sjlie]==(char)30||play[sjhang][sjlie]==(char)19)//开前为未开或者是标的雷
			{
				play[sjhang][sjlie]=tmp[sjhang][sjlie];//赋值
				if(play[sjhang][sjlie]=='*')//799
				{
					system("cls");
					for(i=1; i<=hang; ++i)
					{
						for(j=1; j<=lie; ++j)
						{
							if(tmp[i][j]=='*')
							{
								if(i==sjhang&&j==sjlie)
									SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
								else
									SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
							}
							else
							{
								if(tmp[i][j]==' ')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
								if(tmp[i][j]==(char)19)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
								if(tmp[i][j]=='1')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
								if(tmp[i][j]=='2')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
								if(tmp[i][j]=='3')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
								if(tmp[i][j]=='4')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
								if(tmp[i][j]=='5')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);
								if(tmp[i][j]=='6')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
								if(tmp[i][j]=='7')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
								if(tmp[i][j]=='8')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
							}
							cout<<tmp[i][j]<<' ';
							SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
						}
						cout<<'\n';
					}
					Sleep(1000);
					SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
					cout<<"You lose.\nagain?:0\n";
					cin>>again;
					break;
				}//踩到了雷
				else if(play[sjhang][sjlie]==' ')//806
				{
					space(sjhang,sjlie);
					for(i=0; i<=hang+1; ++i)
						for(j=0; j<=lie+1; ++j)
							cj[i][j]=0;
				}//踩到了空格
			}
			else if(play[sjhang][sjlie]!=' '&&play[sjhang][sjlie]!=(char)19&&play[sjhang][sjlie]!=(char)30)//开前为数字
			{
				jsq=(int)play[sjhang][sjlie]-48;
				if(tmp[sjhang-1][sjlie-1]=='*'&&play[sjhang-1][sjlie-1]==(char)19)sum++;
				if(tmp[sjhang-1][sjlie  ]=='*'&&play[sjhang-1][sjlie  ]==(char)19)sum++;
				if(tmp[sjhang-1][sjlie+1]=='*'&&play[sjhang-1][sjlie+1]==(char)19)sum++;
				if(tmp[sjhang  ][sjlie+1]=='*'&&play[sjhang  ][sjlie+1]==(char)19)sum++;
				if(tmp[sjhang+1][sjlie+1]=='*'&&play[sjhang+1][sjlie+1]==(char)19)sum++;
				if(tmp[sjhang+1][sjlie  ]=='*'&&play[sjhang+1][sjlie  ]==(char)19)sum++;
				if(tmp[sjhang+1][sjlie-1]=='*'&&play[sjhang+1][sjlie-1]==(char)19)sum++;
				if(tmp[sjhang  ][sjlie-1]=='*'&&play[sjhang  ][sjlie-1]==(char)19)sum++;

				if(tmp[sjhang-1][sjlie-1]!='*'&&play[sjhang-1][sjlie-1]==(char)19)
				{
					play[sjhang-1][sjlie-1]='X';
					lose++;
				}
				if(tmp[sjhang-1][sjlie  ]!='*'&&play[sjhang-1][sjlie  ]==(char)19)
				{
					play[sjhang-1][sjlie  ]='X';
					lose++;
				}
				if(tmp[sjhang-1][sjlie+1]!='*'&&play[sjhang-1][sjlie+1]==(char)19)
				{
					play[sjhang-1][sjlie+1]='X';
					lose++;
				}
				if(tmp[sjhang  ][sjlie+1]!='*'&&play[sjhang  ][sjlie+1]==(char)19)
				{
					play[sjhang  ][sjlie+1]='X';
					lose++;
				}
				if(tmp[sjhang+1][sjlie+1]!='*'&&play[sjhang+1][sjlie+1]==(char)19)
				{
					play[sjhang+1][sjlie+1]='X';
					lose++;
				}
				if(tmp[sjhang+1][sjlie  ]!='*'&&play[sjhang+1][sjlie  ]==(char)19)
				{
					play[sjhang+1][sjlie  ]='X';
					lose++;
				}
				if(tmp[sjhang+1][sjlie-1]!='*'&&play[sjhang+1][sjlie-1]==(char)19)
				{
					play[sjhang+1][sjlie-1]='X';
					lose++;
				}
				if(tmp[sjhang  ][sjlie-1]!='*'&&play[sjhang  ][sjlie-1]==(char)19)
				{
					play[sjhang  ][sjlie-1]='X';
					lose++;
				}

				if(sum==jsq&&lose==0)
				{
					if(play[sjhang-1][sjlie-1]!=(char)19&&play[sjhang-1][sjlie-1]!=' ')
					{
						play[sjhang-1][sjlie-1]=tmp[sjhang-1][sjlie-1];
						if(play[sjhang-1][sjlie-1]==' ')space(sjhang-1,sjlie-1);
					}
					if(play[sjhang-1][sjlie  ]!=(char)19&&play[sjhang-1][sjlie  ]!=' ')
					{
						play[sjhang-1][sjlie  ]=tmp[sjhang-1][sjlie  ];
						if(play[sjhang-1][sjlie  ]==' ')space(sjhang-1,sjlie  );
					}
					if(play[sjhang-1][sjlie+1]!=(char)19&&play[sjhang-1][sjlie+1]!=' ')
					{
						play[sjhang-1][sjlie+1]=tmp[sjhang-1][sjlie+1];
						if(play[sjhang-1][sjlie+1]==' ')space(sjhang-1,sjlie+1);
					}
					if(play[sjhang  ][sjlie+1]!=(char)19&&play[sjhang  ][sjlie+1]!=' ')
					{
						play[sjhang  ][sjlie+1]=tmp[sjhang  ][sjlie+1];
						if(play[sjhang  ][sjlie+1]==' ')space(sjhang  ,sjlie+1);
					}
					if(play[sjhang+1][sjlie+1]!=(char)19&&play[sjhang+1][sjlie+1]!=' ')
					{
						play[sjhang+1][sjlie+1]=tmp[sjhang+1][sjlie+1];
						if(play[sjhang+1][sjlie+1]==' ')space(sjhang+1,sjlie+1);
					}
					if(play[sjhang+1][sjlie  ]!=(char)19&&play[sjhang+1][sjlie  ]!=' ')
					{
						play[sjhang+1][sjlie  ]=tmp[sjhang+1][sjlie  ];
						if(play[sjhang+1][sjlie  ]==' ')space(sjhang+1,sjlie  );
					}
					if(play[sjhang+1][sjlie-1]!=(char)19&&play[sjhang+1][sjlie-1]!=' ')
					{
						play[sjhang+1][sjlie-1]=tmp[sjhang+1][sjlie-1];
						if(play[sjhang+1][sjlie-1]==' ')space(sjhang+1,sjlie-1);
					}
					if(play[sjhang  ][sjlie-1]!=(char)19&&play[sjhang  ][sjlie-1]!=' ')
					{
						play[sjhang  ][sjlie-1]=tmp[sjhang  ][sjlie-1];
						if(play[sjhang  ][sjlie-1]==' ')space(sjhang  ,sjlie-1);
					}
				}
				else if(lose>0)
				{
					system("cls");
					for(i=1; i<=hang; ++i)
					{
						for(j=1; j<=lie; ++j)
						{
							if(play[i][j]=='*')
							{
								if(i==sjhang&&j==sjlie)
									SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
								else
									SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
							}
							else if(play[i][j]=='X')
							{
								SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_GREEN);
							}
							else
							{

								if(play[i][j]==(char)30||play[i][j]==' ')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
								if(play[i][j]==(char)19)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
								if(play[i][j]=='1')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
								if(play[i][j]=='2')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
								if(play[i][j]=='3')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
								if(play[i][j]=='4')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
								if(play[i][j]=='5')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);
								if(play[i][j]=='6')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
								if(play[i][j]=='7')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
								if(play[i][j]=='8')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
							}
							cout<<play[i][j]<<' ';
							SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
						}
						cout<<'\n';
					}
					Sleep(1000);
					SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_BLUE);
					cout<<"You lose.\nagain?:0\n";
					cin>>again;
					break;
				}
				else if(sum<jsq)
				{
					system("cls");
					cout<<"条件不满足!";
					Sleep(1000);
					continue;
				}
			}
		}
	}
	return 0;
}
void moshi()
{
	HANDLE consolehwnd;//创建句柄
	consolehwnd=GetStdHandle(STD_OUTPUT_HANDLE);//实例化句柄
	system("cls");
	jsq=0;
	for(i=0; i<=hang; ++i)
	{
		if(i==0)
		{
			SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
			cout<<' ';
			for(k=0; k<=lie; ++k)
			{
				if(k<10)cout<<k<<' ';
				else cout<<k;
			}
			cout<<'\n';
			continue;
		}
		for(j=0; j<=lie; ++j)
		{
			if(j==0)
			{
				SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
				cout<<setw(2)<<i<<' ';
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
				continue;
			}
			if(play[i][j]==(char)30||play[i][j]==(char)19)jsq++;
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
			if(play[i][j]=='1')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
			if(play[i][j]=='2')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
			if(play[i][j]=='3')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
			if(play[i][j]=='4')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
			if(play[i][j]=='5')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);
			if(play[i][j]=='6')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
			if(play[i][j]=='7')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
			if(play[i][j]=='8')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
			if(play[i][j]==(char)19)SetConsoleTextAttribute(consolehwnd,FOREGROUND_RED);
			cout<<play[i][j]<<' ';
		}
		cout<<'\n';
	}
	sjhang=0,sjlie=0;
	cout<<"当前模式:标雷模式\n";
	cout<<"行数:";
	while(sjhang%10==0)
	{
		input=getch();
		if(input=='/')
		{
			if(sjhang!=0)
			{
				cout<<'\n';
				break;
			}
			else continue;
		}
		if(input=='0')
		{
			sjhang+=10;
			cout<<"+10";
		}
		if(input=='1')
		{
			sjhang+=1;
			cout<<"+1\n";
		}
		if(input=='2')
		{
			sjhang+=2;
			cout<<"+2\n";
		}
		if(input=='3')
		{
			sjhang+=3;
			cout<<"+3\n";
		}
		if(input=='4')
		{
			sjhang+=4;
			cout<<"+4\n";
		}
		if(input=='5')
		{
			sjhang+=5;
			cout<<"+5\n";
		}
		if(input=='6')
		{
			sjhang+=6;
			cout<<"+6\n";
		}
		if(input=='7')
		{
			sjhang+=7;
			cout<<"+7\n";
		}
		if(input=='8')
		{
			sjhang+=8;
			cout<<"+8\n";
		}
		if(input=='9')
		{
			sjhang+=9;
			cout<<"+9\n";
		}
	}
	while(sjhang>hang)
	{
		cout<<"无效的输入!请重新输入!\n行数:";
		while(sjhang%10==0)
		{
			input=getch();
			if(input=='/')
			{
				if(sjhang!=0)
				{
					cout<<'\n';
					break;
				}
				else continue;
			}
			if(input=='0')
			{
				sjhang+=10;
				cout<<"+10";
			}
			if(input=='1')
			{
				sjhang+=1;
				cout<<"+1\n";
			}
			if(input=='2')
			{
				sjhang+=2;
				cout<<"+2\n";
			}
			if(input=='3')
			{
				sjhang+=3;
				cout<<"+3\n";
			}
			if(input=='4')
			{
				sjhang+=4;
				cout<<"+4\n";
			}
			if(input=='5')
			{
				sjhang+=5;
				cout<<"+5\n";
			}
			if(input=='6')
			{
				sjhang+=6;
				cout<<"+6\n";
			}
			if(input=='7')
			{
				sjhang+=7;
				cout<<"+7\n";
			}
			if(input=='8')
			{
				sjhang+=8;
				cout<<"+8\n";
			}
			if(input=='9')
			{
				sjhang+=9;
				cout<<"+9\n";
			}
		}
	}
	cout<<"列数:";
	while(sjlie%10==0)
	{
		input=getch();
		if(input=='/')
		{
			if(sjlie!=0)
			{
				cout<<'\n';
				break;
			}
			else continue;
		}
		if(input=='0')
		{
			sjlie+=10;
			cout<<"+10";
		}
		if(input=='1')
		{
			sjlie+=1;
			cout<<"+1\n";
		}
		if(input=='2')
		{
			sjlie+=2;
			cout<<"+2\n";
		}
		if(input=='3')
		{
			sjlie+=3;
			cout<<"+3\n";
		}
		if(input=='4')
		{
			sjlie+=4;
			cout<<"+4\n";
		}
		if(input=='5')
		{
			sjlie+=5;
			cout<<"+5\n";
		}
		if(input=='6')
		{
			sjlie+=6;
			cout<<"+6\n";
		}
		if(input=='7')
		{
			sjlie+=7;
			cout<<"+7\n";
		}
		if(input=='8')
		{
			sjlie+=8;
			cout<<"+8\n";
		}
		if(input=='9')
		{
			sjlie+=9;
			cout<<"+9\n";
		}
	}
	while(sjlie>lie)
	{
		cout<<"无效的输入!请重新输入!\n列数:";
		while(sjlie%10==0)
		{
			input=getch();
			if(input=='/')
			{
				if(sjlie!=0)
				{
					cout<<'\n';
					break;
				}
				else continue;
			}
			if(input=='0')
			{
				sjlie+=10;
				cout<<"+10";
			}
			if(input=='1')
			{
				sjlie+=1;
				cout<<"+1\n";
			}
			if(input=='2')
			{
				sjlie+=2;
				cout<<"+2\n";
			}
			if(input=='3')
			{
				sjlie+=3;
				cout<<"+3\n";
			}
			if(input=='4')
			{
				sjlie+=4;
				cout<<"+4\n";
			}
			if(input=='5')
			{
				sjlie+=5;
				cout<<"+5\n";
			}
			if(input=='6')
			{
				sjlie+=6;
				cout<<"+6\n";
			}
			if(input=='7')
			{
				sjlie+=7;
				cout<<"+7\n";
			}
			if(input=='8')
			{
				sjlie+=8;
				cout<<"+8\n";
			}
			if(input=='9')
			{
				sjlie+=9;
				cout<<"+9\n";
			}
		}
	}
	if(play[sjhang][sjlie]==' ')
	{
		system("cls");
		cout<<"无效的输入!";
		Sleep(1000);
		moshi();
	}
	play[sjhang][sjlie]=(char)19;
}
void space(int i,int j)
{
	HANDLE consolehwnd;//创建句柄
	consolehwnd=GetStdHandle(STD_OUTPUT_HANDLE);//实例化句柄
	system("cls");
	for(int l=0; l<=hang; ++l)
	{
		if(l==0)
		{
			SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
			cout<<' ';
			for(k=0; k<=lie; ++k)
			{
				if(k<10)cout<<k<<' ';
				else cout<<k;
			}
			cout<<'\n';
			continue;
		}
		for(int m=0; m<=lie; ++m)
		{
			if(m==0)
			{
				SetConsoleTextAttribute(consolehwnd,FOREGROUND_INTENSITY|FOREGROUND_RED);
				cout<<setw(2)<<l<<' ';
				SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
				continue;
			}
			if(play[i][j]==(char)30||play[i][j]==(char)19)jsq++;
			if(play[i][j]==(char)30||play[i][j]==' ')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
			if(play[i][j]==(char)19)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
			if(play[i][j]=='1')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
			if(play[i][j]=='2')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
			if(play[i][j]=='3')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
			if(play[i][j]=='4')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE);
			if(play[i][j]=='5')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);
			if(play[i][j]=='6')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
			if(play[i][j]=='7')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
			if(play[i][j]=='8')SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
			cout<<play[i][j]<<' ';
			SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
		}
		cout<<'\n';
	}
	cj[i][j]=1;
	play[i-1][j-1]=tmp[i-1][j-1],play[i-1][j]=tmp[i-1][j],play[i-1][j+1]=tmp[i-1][j+1],play[i][j+1]=tmp[i][j+1],play[i+1][j+1]=tmp[i+1][j+1],play[i+1][j]=tmp[i+1][j],play[i+1][j-1]=tmp[i+1][j-1],play[i][j-1]=tmp[i][j-1];
	if(i>=1&&j>=1&&i<=hang&&j<=lie)
	{
		if(cj[i-1][j-1]==0&&tmp[i-1][j-1]==' ')
		{
			space(i-1,j-1);
		}
		if(cj[i-1][j]==0&&tmp[i-1][j]==' ')
		{
			space(i-1,j);
		}
		if(cj[i-1][j+1]==0&&tmp[i-1][j+1]==' ')
		{
			space(i-1,j+1);
		}
		if(cj[i][j+1]==0&&tmp[i][j+1]==' ')
		{
			space(i,j+1);
		}
		if(cj[i+1][j+1]==0&&tmp[i+1][j+1]==' ')
		{
			space(i+1,j+1);
		}
		if(cj[i+1][j]==0&&tmp[i+1][j]==' ')
		{
			space(i+1,j);
		}
		if(cj[i+1][j-1]==0&&tmp[i+1][j-1]==' ')
		{
			space(i+1,j-1);
		}
		if(cj[i][j-1]==0&&tmp[i][j-1]==' ')
		{
			space(i,j-1);
		}
	}
}

后记

全身心打造c++游戏,全免费。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 16:26:28  更:2021-07-31 16:27:59 
 
开发: 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年4日历 -2024/4/27 14:11:10-

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