2014-09-05 203 views
0

我有一个任务要求编程game of life计算矩阵

我在计算下一代时遇到困难。
问题是:
假设我有此矩阵m4x4的位置:
(点=死亡; + =活着)

。 +。 。
。 +。 +
+。 。 。
。 。 +。

M的邻居是相等的矩阵。所以M(0,0)的邻居是(0,1)(1,1)(1,0)(1,3)(0,3)(3,3)(3,0)和(3)(3,0) ,1)。
我该怎么写?
我应该创建一个6x6矩阵,我把这些值?或者,Java有一些方法可以让问题更加优雅地解决?

谢谢。

回答

0

创建标准化的方法

int normalize(int i, int max){ 
    if(i==-1) return max; 
    if(i==max+1) return 0; 
    return i; 
} 

和邻居将

int x, y; current 
for(int i = -1; i<=1; i++) { 
    for(int i = -1; i<=1; i++) { 
     if(i==0 && j==0) continue; 
     print(normalize(x+i, maxX), normalize(y+j, maxY); 
    } 
}