扫雷(升级版)纯入写的(没有AI)
2026-08-02 17:29:59
发布于:浙江
#include<bits/stdc++.h>
using namespace std;
int dx[8]={-1,-1,-1,0,0,1,1,1};
int dy[8]={-1,0,1,-1,1,-1,0,1};
int dfsx[4]={-1,1,0,0};
int dfsy[4]={0,0,-1,1};
char a[100][100];
char mp[100][100];
int vis[100][100];
int f(int x,int y){
int c=0;
for(int i=1;i<=8;i++){
int nx=x+dx[i];
int ny=y+dy[i];
if(a[nx][ny]=='*'){
c++;
}
}
return c;
}
void dfs(int x,int y){
vis[x][y]=1;
if(f(x,y)==0){
mp[x][y]='0';
for(int i=0;i<4;i++){
int nx=dfsx[i]+x;
int ny=dfsy[i]+y;
if(!vis[nx][ny]&&a[nx][ny]!='*'&&nx>=1&&nx<=10&&ny>=1&&ny<=10){
dfs(nx,ny);
}
}
}
else{
mp[x][y]=f(x,y)+'0';
return ;
}
}
int main(){
srand(time(0));
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
a[i][j]='.';
mp[i][j]='.';
}
}
int s=rand()%25+1;
for(int i=1;i<=s;i++){
int xa=rand()%10+1;
int ya=rand()%10+1;
a[xa][ya]='*';
}
int player1=0,player2=0;
while(1!=-1){
for(int yyyyy=1;yyyyy<=2;yyyyy++){
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
cout<<mp[i][j];
}
cout<<"\n";
}
cout<<player1<<" "<<player2<<"\n";
int o,p,j;
cin>>o>>p>>j;
if(a[o][p]=='*'&&j==2&&yyyyy==1){
player1++;
}
else if(a[o][p]=='*'&&j==2&&yyyyy==2){
player2++;
}
if(j==1){
if(a[o][p]!='*'){
dfs(o,p);
}
else {
cout<<"你输了\n";
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
cout<<a[i][j];
}
cout<<"\n";
}
return 0;
}
}
if(j==2){
mp[o][p]='P';
}
system("cls");
}
}
}
休闲小游戏,中午闲着没事写的
这里空空如也















有帮助,赞一个