康威的生命游戏

我的问题是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

回到顶部