- js24011 的博客
扫雷
- @ 2026-7-25 14:21:16
前排提醒:未经允许禁止搬运
#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;
}
}