The game of life(生命游戏)新算法

我写了一种常见的实现算法,和另一种新算法,即不是每次循环计算每个细胞的周围细胞数来产生下一时刻,而是每次每个产生状态变化的细胞主动通知周围的邻居,服务器空间,因此每个细胞增加一个用来记录邻居数的字段。由邻居数决定每个细胞的出生和死亡,然后影响周围邻居的邻居数。并且为了不影响后续细胞的判断,需要新旧邻居数两个状态,用旧邻居数决定自己生死,香港服务器租用,美国空间,而自己的生死变化影响周围邻居的新邻居数。另外如果某个格子的新旧邻居数不变则状态不变,增加一个changed字段来表示。下面分别是旧、新两种算法。

1 #include <stdio.h> 2 #include <stdlib.h>ROW 20 5 #define COL 60 6 #define FILEPATH “1.txt”countNbor(char data[][COL],int i,int j);10 void world(void);main(void)14 {15 world();;17 }world(void)20 {21int i,j;22char data[ROW][COL];23char temp[ROW][COL];24int time=0;FILE *fp=fopen(FILEPATH,);(i=0;i<ROW;i++)30 {31for(j=0;j<COL;j++)32 {) temp[i][j]=data[i][j]=;;36 }37 fgetc(fp);38 }39 fclose(fp);(1)42 {43time++;);46for(i=0;i<ROW;i++)47 {48for(j=0;j<COL;j++),data[i][j]););51 },time););(i=0;i<ROW;i++)57for(j=0;j<COL;j++)58switch(countNbor(temp,i,j))59 {:;62break;:64break;65default:66data[i][j]=’ ‘;67break;68 }(i=0;i<ROW;i++)71for(j=0;j<COL;j++)72temp[i][j]=data[i][j];73 }7475 }countNbor(char data[][COL],int i,int j)78 {79int m,n;80int count=0;(m=i-1;m<=i+1;m++)83for(n=j-1;n<=j+1;n++)84if( (m==i&&n==j) ||m<0||n<0||m==ROW||n==COL)85continue;(data[m][n]==) count++; count;89 }一遍一遍的……你突然明白自己还活着,

The game of life(生命游戏)新算法

相关文章:

你感兴趣的文章:

标签云: