- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试编写一个非常基本的康威生命游戏版本。我的程序几乎可以正常工作,但是 1(代表活细胞)即使有两三个活的邻居也会继续死亡。这很奇怪,因为信号灯有效,但当我尝试信标模式时,它不再有效。
这是一个维基百科链接,其中包含我正在谈论的模式。 http://en.wikipedia.org/wiki/Conway 's_Game_of_Life。
这是我的代码:
public class GameofLife {
public static void main(String[] args){
int [][] array = new int [12][12];
array[8][8]=1;
array[8][9]=1;
array[8][7]=1;
int [][] end = new int [12][12];
printArray(array);
System.out.println("");
System.out.println("");
int a=0;
while(a<30){
for(int i=1; i<=10; i++)
{
for(int j=1; j<=10; j++)
{
int counter = surround(array,i,j);
if(array[i][j]==1 && counter<2)
{
end[i][j]=0;
}
if(array[i][j]==1 && counter==2)
{
array[i][j]=1;
}
if(array[i][j]==1 && counter>4)
{
end[i][j]=0;
}
if(array[i][j]==0 && counter==3)
{
end[i][j]=1;
}
if(array[i][j]==1 && counter==3)
{
end[i][j]=1;
}
}
}
printArray(end);
a++;
for(int i=0; i<12; i++)
{
for(int j=0; j<12; j++)
{
array[i][j]=end[i][j];
end[i][j]=0;
}
}
System.out.println("");
System.out.println("");
}
public static int surround(int[][] initial, int i, int j){
int[][] surrounding = {{initial[i-1][j-1],initial[i-1][j],initial[i-1][j+1]},
{initial[i][j-1],initial[i][j],initial[i][j+1]},
{initial[i+1][j-1],initial[i+1][j],initial[i+1][j+1]}};
int counter = 0;
for(int a=0; a<=2; a++)
{
for(int b=0; b<=2; b++)
{
if(surrounding[a][b]==1)
{
counter ++;
}
}
}
return counter;
}
public static void printArray(int[][] input)
{
for(int x =0; x<input.length; x++)
{
for(int y=0; y< input[0].length; y++)
{
System.out.print(input[x][y]);
}
System.out.println("");
}
}
感谢您的帮助!
最佳答案
这里的逻辑:
for(int a=0; a<=2; a++)
{
for(int b=0; b<=2; b++)
{
if(surrounding[a][b]==1)
{
counter ++;
}
}
}
有点错误 - 您不需要计算单元格本身,因此需要在 a == 1 && b == 1
时跳过。
...当然还有@Blorgbeard 的评论:-)
关于java - 康威的生命游戏——细胞在不该死的时候死了? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30472729/
我正在开发一个使用多个 turtle 的滚动游戏。玩家 turtle 根据按键命令在 Y 轴上移动。当危害和好处在 X 轴上移动时,然后循环并改变 Y 轴位置。我尝试定义一个名为 colliding(
我不明白为什么他们不接受这个作为解决方案,他们说这是一个错误的答案:- #include int main(void) { int val=0; printf("Input:- \n
我正在使用基于表单的身份验证。 我有一个注销链接,如下所示: 以及对应的注销方法: public String logout() { FacesContext.getCurren
在 IIS7 应用程序池中有一个设置 Idle-time out 默认是 20 分钟,其中说: Amount of time(in minutes) a worker process will rem
我是一名优秀的程序员,十分优秀!