我必须为大学的编程模块编写康威生活模拟游戏。该程序的工作原理是每次迭代都能正确计算邻居的数量。它应该如何工作是:
Current State Neighbors Next State
Alive 2 Alive
Alive 3 Alive
Alive <2 Dead
Alive >3 Dead
Dead 3 Alive
每次改变一个细胞状态时,其周围的 8 个细胞相邻字段都会增加或减少。
public static Cell[][] updateGrid(Cell[][] theMatrix){
Cell[][] copy = new Cell[DIMENSIONX][DIMENSIONY];
for(int x = 0; x < DIMENSIONX; x++){
for(int y = 0; y < DIMENSIONY; y++ ){
copy[x][y] = theMatrix[x][y];
}
}
int increment;
for(int x = 0; x < DIMENSIONX; x++){
for(int y = 0; y < DIMENSIONY; y++ ){
//Underpopulation
if((copy[x][y].alive == false)&&(copy[x][y].neighbours == 3)){
theMatrix[x][y].alive = true;
increment = 1;
theMatrix = addNeighbours(theMatrix, increment, x,y);
}
//Over Population
else if((copy[x][y].alive==true)&&(copy[x][y].neighbours > 3)){
theMatrix[x][y].alive = false;
increment = -1;
theMatrix = addNeighbours(theMatrix, increment, x,y);
}
}
}
return theMatrix;
}
感谢您抽出时间来看看!〜保罗