假设我有一个创建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个空单元格。
答案 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;
}