- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为我的生命游戏设置了一个初始的细胞模式 (initial state screenshot) 来进化,但代码似乎没有正确地进化细胞。相反,它会停止 here ,但这一代人不应该是这个样子。 (对于给您带来的不便,我深表歉意,但由于缺乏声誉,我无法发布状态应该是什么样子)。我查看了我的进化方法,但我似乎找不到问题,因为我相信所有周围的细胞都被考虑在内了。非常感谢您的帮助。
public void setCellAlive (int row, int col){
if (row <= numberRows){
colony [row][col] = 1;
}else{
System.out.println ("Index out of range.");
}
}
public void setCellDead (int row, int col){
if (row <= numberRows){
colony [row][col]=0;
}else{
System.out.println ("Index out of range.");
}
}
private void evolution(int i, int j) {
int left = 0, right = 0, up = 0, down = 0;
int topLeft = 0, topRight = 0, bottomLeft = 0, bottomRight = 0;
if (j < colony.length - 1) {
right = colony[i][j + 1];
if(i>0)
bottomRight = colony[i - 1][j + 1];
if (i < colony.length - 1)
topRight = colony[i + 1][j + 1];
}
if (j > 0) {
left = colony[i][j - 1];
if (i > 0)
bottomLeft = colony[i - 1][j - 1];
if (i< colony.length-1)
topLeft = colony[i + 1][j - 1];
}
if (i > 0)
up = colony[i + 1][j];
if (i < colony.length - 1)
down = colony[i - 1][j];
int sum = left + right + up + down + topLeft + topRight
+ bottomLeft + bottomRight;
if (colony[i][j] == 1) {
if (sum < 2)
setCellDead (i,j);
if (sum > 3)
setCellDead(i,j);
}
else {
if (sum == 3)
setCellAlive (i,j);
}
}
public void updateColony() {
for (int i = 0; i < colony.length; i++) {
for (int j = 0; j < colony[i].length; j++) {
evolution(i, j);
}
}
}
最佳答案
你正在改变数组的值,然后使用新的(而不是旧的)值来决定更多单元格的状态。解决方案是在每次 tick 时创建一个新数组,然后使用旧数组设置其值:
public void updateColony() {
int [][] nextStep = new int[colony.length][colony[0].length];
for (int i = 0; i < colony.length; i++) {
for (int j = 0; j < colony[i].length; j++) {
evolution(nextStep, i, j);
}
}
colony = nextStep;
}
关于Java 生命游戏没有正确检查邻居,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37848753/
我从 SpatialPolygonsDataFrame 开始,它包含用于创建加纳各地区 map 的数据(可在 http://www.diva-gis.org/datadown 获取)。我正在尝试创建一
我遇到了一个问题,我需要根据存储在前一个元素中的信息修改容器的元素。示例: 如果前一个 vector 元素可被 2 整除,则将当前元素乘以 10 vector -> [12, 11, 33, 10]
总的来说,我对脚本编写还很陌生。我正在编写一个 expect 脚本,它通过 ssh 进入 Cisco 交换机,并运行“show cdp neighbors”命令来获取连接到交换机的所有设备的列表。然后
我正在尝试比较节点的值。使用 flood-fill 算法,我能够垂直和水平检查网格的每个节点。现在我必须更新我的代码以检查位于对 Angular 线上的单元格,如下图所示: 红色是当前节点,黄色是需要
我使用预先计算的指标使用 Scikit-Learn 的最近邻/半径分类。这意味着,我将成对距离的 n_samples_train x n_samples_train 矩阵传递给分类器的拟合方法。 现在
我有一个大的稀疏图,我将其表示为邻接矩阵(100k x 100k 或更大),存储为边数组。具有(非稀疏)4 x 4 矩阵的示例: 0 7 4 0 example_array = [ [7,1,2],
从有向图中并给出两个顶点 (v, u) 我需要找到:共同的“出”邻居和共同的“入”邻居。 例如: import networkx as nx ghybrid = nx.DiGraph() ghybri
我正在使用 JavaScript 进行图像处理,我想知道是否有任何通用公式可以确定像素的 x 邻居。 我知道对于 3*3 的正方形,可以使用特定的 x 和 y 像素确定 8 个邻居。 (x-1,y-1
在 CentOS 6.4(内核 2.6.32)上,为什么下面的第二个 arping 调用会创建一个新的 ARP 表条目,而第一个不会?网络行为是相同的,我感到困惑的是,在我看来,系统调用实际上是等同的
我是一名优秀的程序员,十分优秀!