public class xibaoji {
public static void main(String[] args) throws InterruptedException {
//规则:设存活细胞为1,死亡为0;存活细胞会显示出来
//1、细胞周围存在三个活细胞时,细胞将存活
//2、细胞周围存在两个活细胞,细胞状态不变
//3、其余状态细胞死亡
char aa=46;
int a[][]=new int[72][42];
int b[][]=new int[72][42];
for (int i = 1; i < 41; i++) {
for (int i1 = 1; i1 < 71; i1++) {
a[i1][i]=((int)(Math.random()*2));
}
}
for (;;) {
Thread.sleep(100);
for (int i = 1; i < 41; i++) {
for (int i1 = 1; i1 < 71; i1++) {
if (a[i1][i]==1){
System.out.print(aa);
System.out.print(" ");
}else System.out.print(" ");
}
System.out.println();
}
for (int i = 1; i < 41; i++) {
for (int i1 = 1; i1 < 71; i1++) {
int g=a[i1-1][i-1]+a[i1-1][i]+a[i1-1][i+1]+a[i1][i-1]+a[i1][i+1]+a[i1+1][i-1]+a[i1+1][i]+a[i1+1][i+1];
if(g==3)b[i1][i]=1;
else if(g==2)b[i1][i]=a[i1][i];
else b[i1][i]=0;
}
}
Thread.sleep(100);
for (int i = 1; i < 41; i++) {
for (int i1 = 1; i1 < 71; i1++) {
if (b[i1][i]==1){
System.out.print(aa);
System.out.print(" ");
}else System.out.print(" ");
}
System.out.println();
}
for(int i = 1; i < 41; i++) {
for (int i1 = 1; i1 < 71; i1++) {
int g=b[i1-1][i-1]+b[i1-1][i]+b[i1-1][i+1]+b[i1][i-1]+b[i1][i+1]+b[i1+1][i-1]+b[i1+1][i]+b[i1+1][i+1];
if(g==3)a[i1][i]=1;
else if(g==2)a[i1][i]=b[i1][i];
else a[i1][i]=0;
}
}
}
}
}
java关于二维数组生成二维细胞自动机
最新推荐文章于 2025-05-09 17:11:59 发布