java grid / board for-loop:什么行是空的,最近的?

时间:2015-09-13 22:30:14

标签: java for-loop grid

假设我有一个创建4x8板的程序。板中的每个单元是有色对象或空单元对象。如何找到我的电路板中哪一行是空的并且最靠近第0行?

我的尝试:

public int emptyRow() {

    int emptyCells = 0;
    int emptyRow;

    for (int i = 0; i < getMaxRows(); i++){
        for (int j = 0; j < getMaxCols(); j++){
            if (getBoardCell(i,j).equals(BoardCell.EMPTY)){
                emptyCells++;

                if (emptyCells == getMaxCols()){
                    return i;
                }
            }
        }
    }

但我意识到这将计算所有空单元格,我只需要一行中有8个空单元格。

1 个答案:

答案 0 :(得分:1)

首先需要为内部for循环创建一个变量来计算该特定行中的项目数,这样您就可以确定它是否为空。如果从第0行开始,那么您找到的第一行将是您最近的行。这样的事情。

int[][] myBoard = {{1,1,1},{0,0,0},{1,1,1}};

for(int i = 0; i < myBoard.length; i++) {
    int count = 0;
    //Loop through the columns of the row
    for(int j = 0; j < myBoard[i].length; j++) {
        //Check to see if the column for this row is empty if it is add 
        //to our empty cell count
        if(myBoard[i][j] == 0) count ++;
    }

    //If our count is equal to the amount of columns in a row we return 
    //the row index.
    if(count == myBoard[i].length()) return i;
}