space Java 中基于文本的扫雷克隆中的空白 space 扩展

Blank space expansion in text-based Minesweeper clone in Java

当出现问题时,我正在 Java 中制作基于文本的扫雷克隆版。 我的观点是,如果您单击黑色 space,它 应该 显示该空白 space 周围的所有空白 space 并且空白 space 周围的所有空白 space,等等

我目前的代码:

  public void exposeAround(){
    //Row = inputRow and Column = inputColumn
    for(int row = Row-1; row < Row+1; row++){
        for(int col = Column-1; col < Column+1; col++){
            if((row < 0) || (row > 8) || (col < 0) || (col < 8)){
                continue;
            } else{
                if(mines[row][col] == '.'){
                    board[row][col] = mines[row][col];
                    System.out.println("Test");
                    exposeAround();
                } else{
                    board[row][col] = mines[row][col];
                }
            }   
        }
    }
}

它不会抛出任何错误,但是在这个方法 运行 之后它不会做任何事情 ,即使在我 运行 printBoard(); 方法

如果您对我的代码的其他部分有任何疑问,请告诉我。 我试图找到这个答案,但我唯一能找到的是基于 GUI 的扫雷

编辑:谢谢大家的帮助,我已经解决了我的问题。

您可以使用简单的填充算法来打开空白空间。

它将看起来像这样:

public void exposeAround(int x1, int y1){
    //if position (x1, y1) is a bomb or number
    //    return
    //if outOfBounds(x1, y1)
    //    return
    //open up location (x1, y1)
    //exposeAround(x1-1, y1)    - flood north
    //exposeAround(x1+1, y1)    - flood south
    //exposeAround(x1-1, y1-1)  - flood west
    //exposeAround(x1-1, y1+1)  - flood east
}

所以它将 "flood" 所有 4 个方向。一次 1 个方向。当它碰到边界(炸弹、数字、二维数组的边界)时,它会回溯到最后一个好的位置以继续 "flooding" 过程。