# 关于展开空格的算法

``````//打开盒子
public  boolean  click(int x,int y) {
if(grid[x][y].isType()) {
//盒子类已经打开
return true;
}else {
if(grid[x][y].getContent()=='*') {
//是雷直接显示
show();
return false;
}else {
if(grid[x][y].getContent()==' ') {
//是空格
grid[x][y].setType(true);
clickBlank(x,y);
return true;
}else {
//是数字
grid[x][y].setType(true);
return true;
}
}
}
}
//判断空白的格子
public void  clickBlank(int x,int y) {
if(x-1>-1&&x-1<9&&grid[x-1][y].getContent()!='*') {
click(x-1,y);
}
if(x+1>-1&&x+1<9&&grid[x+1][y].getContent()!='*') {
click(x+1,y);
}
if(y-1>-1&&y-1<9&&grid[x][y-1].getContent()!='*') {
click(x,y-1);
}
if(y+1>-1&&y+1<9&&grid[x][y+1].getContent()!='*') {
click(x,y+1);
}
}
``````

//打开盒子方法

``````public  void   click(int x,int y) {
if(!grid[x][y].isType()) {
if(grid[x][y].getContent()=='*'){
grid[x][y].setType(true);
//雷的处理
}else {if(grid[x][y].getContent()==' '){
grid[x][y].setType(true);
if(x-1>-1&&x-1<9&&grid[x-1][y].getContent()!='*') {
click(x-1,y);
}
if(x+1>-1&&x+1<9&&grid[x+1][y].getContent()!='*') {
click(x+1,y);
}
if(y-1>-1&&y-1<9&&grid[x][y-1].getContent()!='*') {
click(x,y-1);
}
if(y+1>-1&&y+1<9&&grid[x][y+1].getContent()!='*') {
click(x,y+1);
}
}else {
grid[x][y].setType(true);
}
}}
}
``````