⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 johnconway.c

📁 自己做的常用库和实现的数据结构。public domain.
💻 C
字号:
/* Demo of John Conway life game. * * Written by Cyril Hu (cyrilhu@gmail.com), public domain. */#include<stdio.h>#include<stdlib.h>#include<time.h>#define Z 20#define X 10#define Y 10int life[Z][X][Y];int alive(int k, int i, int j, int t1, int t2, int t3, int t4);int main(void){	int *p,k,i,j,t1,t2,t3,t4;	srand(time(NULL));	for(p=life[0][0]; p<life[0][0]+X*Y*Z; p++)		*p = (int)(2.0 * rand()/(1.0+RAND_MAX));	for(k=0; k<Z; k++)		for(i=0; i<X; i++)			for(j=0; j<Y; j++) {				t1=i-1, t2=j-1, t3=i+1, t4=j+1;				if(i==0) 					t1=i;				if(i==X-1)					t3=i;				if(j==0)					t2=j;				if(j==Y-1)					t4=j;				if(life[k][i][j]==0 && 				   alive(k,i,j,t1,t2,t3,t4)==3)					life[k][i][j]=1;				if((life[k][i][j]==1) && 				   (alive(k,i,j,t1,t2,t3,t4)==2 || 				   alive(k,i,j,t1,t2,t3,t4)==3) && k != Z-1 )					life[k+1][i][j]=1;				if((life[k][i][j]==1) && 				   (alive(k,i,j,t1,t2,t3,t4)<2 || 				   alive(k,i,j,t1,t2,t3,t4)>3))					life[k][i][j]=0;			}	for(k=0; k<Z; k++) {		printf("\n\nGeneration %d\n", k+1);		for(i=0; i<X; i++) {			for(j=0; j<Y; j++) 				printf("%d ",life[k][i][j]);			puts("");		}	}	return EXIT_SUCCESS;}int alive(int k, int i, int j, int t1, int t2, int t3, int t4){	int cnt=0;		if(life[k][t1][t2]) cnt++;	if(life[k][t1][j]) cnt++;	if(life[k][t1][t4]) cnt++;	if(life[k][i][t2]) cnt++;	if(life[k][i][t4]) cnt++;	if(life[k][t3][t2]) cnt++;	if(life[k][t3][j]) cnt++;	if(life[k][t3][t4]) cnt++;	return cnt;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -