我的問題是boolean isLive = false;
爲什麼這被分配爲假?我看過很多模擬器的例子,但我從來沒有理解它。任何人都可以解釋這條線在做什麼?康威的生命遊戲
/**
* Method that counts the number of live cells around a specified cell
* @param board 2D array of booleans representing the live and dead cells
* @param row The specific row of the cell in question
* @param col The specific col of the cell in question
* @returns The number of live cells around the cell in question
*/
public static int countNeighbours(boolean[][] board, int row, int col)
{
int count = 0;
for (int i = row-1; i <= row+1; i++) {
for (int j = col-1; j <= col+1; j++) {
// Check all cells around (not including) row and col
if (i != row || j != col) {
if (checkIfLive(board, i, j) == LIVE) {
count++;
}
}
}
}
return count;
}
/**
* Returns if a given cell is live or dead and checks whether it is on the board
*
* @param board 2D array of booleans representing the live and dead cells
* @param row The specific row of the cell in question
* @param col The specific col of the cell in question
*
* @returns Returns true if the specified cell is true and on the board, otherwise false
*/
private static boolean checkIfLive (boolean[][] board, int row, int col) {
boolean isLive = false;
int lastRow = board.length-1;
int lastCol = board[0].length-1;
if ((row >= 0 && row <= lastRow) && (col >= 0 && col <= lastCol)) {
isLive = board[row][col];
}
return isLive;
}
所以'返回將isLive;'返回false? – user1721548
是的,如果單元不在板上(即測試未驗證),isLive不會更改,因此它返回false。 –
編號'isLive = board [row] [col]'如果單元格生效,則更改isLive爲真 – mcalex