2015-05-25 2 views
0

Я работаю над проектом класса игры и застрял.Проверьте, заполнен ли столбец 2d массива

Я искал всюду о том, как проверить, заполнен ли какой-либо столбец в 2-мерном Array, и если да, то столбец будет полностью очищен.

Я действительно новичок в Java, поэтому, если вы можете помочь мне с этим!

Это код, который у меня есть до сих пор.

//removes filled columns - added method 
private boolean removeFullCol() 
{ 
    for(int i = 0; i < board.length; i++){ 
     for(int j = 0; j < board[i].length; j++){ 
      if(board[i][j] != occupied){ 
       return false; 
      } 
     } 
    } 
    //empty square was never found - column is full 
    return true; 
} 
+3

ли вы это проверить? Есть проблема? –

+0

Вам не нужен какой-то способ отслеживания каждого столбца? Здесь вы повторяете каждый квадрат. Я не уверен, что 'i' представляет строки или столбцы, но чтобы увидеть, заполнен ли столбец, вам нужно отслеживать, сколько элементов в каждом столбце заполнено. Здесь вы возвращаете false, если какая-либо позиция на доске пуста, в то время как вы должны отслеживать, если столбец не имеет пустых позиций. – Trisha

+0

Вам нужно будет предоставить больше контекста. Какова ценность 'занятых'? Как это называется? Что происходит с результатом функции 'removeFullCol()? Кажется, вы просто возвращаете «true» или «false». – Tom

ответ

1

Если вы хотите удалить только полные COLS, проверить, перевалы, но вы не можете вернуть логическое значение, если вы хотите, чтобы проверить все столбцы. У вас есть 2 варианта:

  • проверка заданного столбца (возвращающие boolean)
  • возвратный первый столбец заполнен (возвращает int)

Первый вариант:

private boolean removeFullCol(int col) 
    for (int row=0; row<board[col].length; row++) { 
     // check if all are filled not sure which object is inside board... 
     if(board[row][col] == null){ 
      return false; 
     } 
    } 
    return true; 
} 

Второй вариант (возвращает первый пол полный или dat а, -1 в противном случае):

private int removeFullCol() 
    for (int row=0; row<board[col].length; row++) { 
     int filled = 0; 
     for (int row=0; row<board[col].length; row++) { 
      // check if all are filled not sure which object is inside board... 
      if(board[row][col] != null){ 
       filled ++; 
      } 
     } 

     // when finished check how many rows are filled 
     if (board[col].length == filled) 
      return row; 

    } 
    return -1; 
} 

Я написал код на лету ... Дайте мне знать, если какие-либо ошибки или сомнения ...

Смежные вопросы