#include<stdio.h>
int map[11][11]={},i,j,mapp[11][11]={};
void view(){
for(int y=1;y<=9;y++){
for(int x=1;x<=9;x++){
if(mapp[y][x]==9)
printf("0 ");
else if(mapp[y][x]==0)
printf("_ ");
else
printf("%d ",mapp[y][x]);
}
printf("\n");
}
}
int find(int y,int x){
int max=0;
for(int yi=y-1;yi<=y+1;yi++)
{
for(int xi=x-1;xi<=x+1;xi++)
{
if(map[yi][xi]==1)
max++;
}
}
if(max==0)
return 9;
return max;
}
void DFS(int y,int x){
if(map[y][x]==2)
return ;
int c;
c=find(y,x);
mapp[y][x]=c;
map[y][x]=2;
if(c<9)
return ;
if(y<9) DFS(y+1,x);
if(y>1) DFS(y-1,x);
if(x<9) DFS(y,x+1);
if(x>1) DFS(y,x-1);
if(y>1){
if(x>1) DFS(y-1,x-1);
if(x<9) DFS(y-1,x+1);
}
if(y<9){
if(x>1) DFS(y+1,x-1);
if(x<9) DFS(y+1,x+1);
}
return ;
}
void main(){
for(i=1;i<=9;i++){
for(j=1;j<=9;j++){
scanf("%d",&map[i][j]);
}
}
scanf("%d %d",&i,&j);
if(map[i][j]==1){
mapp[i][j]=-1;
view();
return ;
}
DFS(i,j);
view();
return ;
}
top of page
실제 작동 상태를 확인하려면 라이브 사이트로 이동하세요.
DFS 지뢰 찾기2
DFS 지뢰 찾기2
댓글 0개
좋아요
댓글(0)
bottom of page