前排提醒:未经允许禁止搬运


#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int a[114514],k,n,l,cx,cy,qi,op,f,nun,lei;
char m[1145][1145],s[1145][1145];
int dx[]={0,1,1,1,0,0,-1,-1,-1};
int dy[]={0,1,0,-1,1,-1,1,0,-1};
void sanb(){
	for(int i=0;i<10;i++){
		for(int j=0;j<10;j++){
			int num=0;
			for(int k=1;k<=8;k++){
				int nx=dx[k]+i,ny=dy[k]+j;
				if(m[nx][ny]=='*'&&nx>=0&&ny>=0&&nx<10&&ny<10)num++;
			}
			if(num>0&&m[i][j]!='*')m[i][j]=num+'0';
		}
	}
}
void sans(int x,int y){
	if(m[x][y]=='*'){
		s[x][y]='*';
		return;
	}
	else if(m[x][y]-'0'>0){
		s[x][y]=m[x][y];
		return;
	}
	for(int i=1;i<=8;i++){
		int nx=dx[i]+x;
		int ny=dy[i]+y;
		if(m[nx][ny]!='*'&&s[nx][ny]=='?'&&nx>=0&&ny>=0&&nx<10&&ny<10){
			if(m[nx][ny]-'0'==0)s[nx][ny]='.';
			else s[nx][ny]=m[nx][ny];
			sans(nx,ny);
		}
	}
	return;
}
int main(){
	srand((unsigned)time(0));
	memset(m,'0',sizeof(m));
	memset(s,'?',sizeof(s));
	cout<<"lei:"; 
	cin>>n;
	for(int i=1;i<=n;i++){
		Sleep(rand()%20);
		int er=(rand()*2+time(0))%100;
		if(!a[er]){
			k++;
			a[er]++;
		}
		else i--;
	}
	sort(a+1,a+n+1);
	qi=n;
	for(int i=1;i<=100;i++){
		if(a[i]){
			m[i/10][i%10]='*';
			cout<<i<<" ";
			l++;
			if(l>=n)break;
		}
	}
	system("cls");
	cout<<endl;
	sanb();
//	for(int i=0;i<10;i++){
//		for(int j=0;j<10;j++){
//			cout<<m[i][j]<<" ";
//		}
//		cout<<endl;
//	}
	cout<<"  ";
	for(int i=0;i<10;i++){
		cout<<i<<" ";
		Sleep(2);
	}
	cout<<endl;
	for(int i=0;i<10;i++){
			cout<<i<<" ";
			Sleep(2);
			for(int j=0;j<10;j++){
				cout<<s[i][j]<<" ";
				Sleep(2);
			}
			cout<<endl;
		}
	lei=n;
	while(nun!=n){
		nun=0;
		system("cls");
		cout<<"lei:"<<qi<<endl; 
		cout<<"  ";
		for(int i=0;i<10;i++)cout<<i<<" ";
		cout<<endl;
		for(int i=0;i<10;i++){
			cout<<i<<" ";
			for(int j=0;j<10;j++){
				if(s[i][j]=='?')
				cout<<s[i][j]<<" ";
			}
			cout<<endl;
		}
		cout<<"qi  or  pai lei?"<<endl<<"1.qi     2.pailei"<<endl;
		while(1){
			cin>>op;
			if(op==1||op==2)break;
		}
		cout<<"shuru(x,y):"; 
		cin>>cy>>cx;
		if(op==1){
			if(s[cx][cy]=='P'){
				s[cx][cy]=='?';
				lei++;
			}
			else if(s[cx][cy]-'0'){
				cout<<"No";
				Sleep(1000);
			}
			else{
				s[cx][cy]=='P';
				lei--;
			}
		}
		else{
			if(m[cx][cy]=='*'){
				cout<<"B";
				for(int i=1;i<=10;i++){
					Sleep(10);
					cout<<"o";
				}
				cout<<"m!";
				Sleep(1500);
				f=1;
				break;
			}
			sans(cx,cy);
		}
		for(int i=0;i<10;i++){
			for(int j=0;j<10;j++){
				if(s[i][j]=='?')nun++;
			}
		}
	}
	system("cls");
	if(f)cout<<"You lose!"<<endl;
	else cout<<"You win!"<<endl;
	for(int i=0;i<10;i++)cout<<i<<" ";
	cout<<endl;
	for(int i=0;i<10;i++){
			cout<<i<<" ";
			for(int j=0;j<10;j++){
				if(m[i][j]!='0')cout<<m[i][j]<<" ";
				else cout<<'.';
			}
			cout<<endl;
		}
}