康威的生命游戏
我的问题是boolean isLive = false;
为什么这被分配为假?我看过很多模拟器的例子,但我从来没有理解它。任何人都可以解释这条线在做什么?康威的游戏" title="生命游戏">生命游戏
/** * 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;
}
回答:
这根本的默认值,如果测试(if
条款)已通过验证可以改变。
它定义了委员会以外的单元格不存在的约定。
这本来是写为:
private static boolean checkIfLive (boolean[][] board, int row, int col) { int lastRow = board.length-1;
int lastCol = board[0].length-1;
if ((row >= 0 && row <= lastRow) && (col >= 0 && col <= lastCol)) {
return board[row][col];
} else {
return false;
}
}
回答:
首先我们给布尔值“假”(确保默认条件)
那么,如果有效的条件是发现我们改变了价值,否则默认为false会回。
回答:
boolean isLive = false;
这是一个布尔变量的默认值。如果你声明为一个实例变量,它会自动初始化为false。
为什么这被分配为假?
那么,我们这样做,只是以一个默认值开始,那么我们可以根据一定的条件后来更改为true
值。
if ((row >= 0 && row <= lastRow) && (col >= 0 && col <= lastCol)) { isLive = board[row][col];
}
return isLive;
所以,在上面的代码,如果你的if
条件是假的,那么它类似于返回false
值。因为,变量isLive
未更改。
但是,如果您的情况属实,那么return value
将取决于board[row][col]
的值。如果是false
,返回值仍然是false
,否则true
。
回答:
boolean isLive = false;
它是分配给布尔变量的默认值。
就像:
int num = 0;
以上是 康威的生命游戏 的全部内容, 来源链接: utcz.com/qa/266625.html