Red de conocimiento informático - Programación de la red - Pide a expertos que escriban programas en C - Game of Life

Pide a expertos que escriban programas en C - Game of Life

#includelt;iostreamgt;

usando?namespace?std;

#includelt;time.hgt;

#define?M ?70

#define?N?20

void?mShow(int?a[N 2][M 2])

{?int?i , j;

for?(?i=0;ilt;N;i ,coutlt;lt;endl?)

for?(?j=0;jlt;M; j ?)

si?(?a[i 1][j 1]?)?coutlt;lt;'*';

else?coutlt;lt;'.' ;

//coutlt;lt;(?a[i 1][j 1]?)?('*'): ('?');

}

int?mJduge(int?a[N 2][M 2])

{?int?i,j,k,s,*p[9],b[N] [M];

para?(?i=0;ilt;N;i?)

{

p[0]=p[4] =p[5]=amp;a[i 1][1];?p[4]--;?p[5];//?1?2?3

p[1] =p[2]=p[3]=p[0]-M-2;?p[1]--;?p[3];?/?//?4?0?5

p[6]=p[7]=p[8]=p[0] M 2;?p[6]--;?p[8] //6?7?8

para?(?j=0;jlt;M;j ?)

{?para?(?k=1, s=0;klt;9;k ?)?s =(*p [k]);

b[i][j]=*p[0];

si?(?sgt;=3?)?b[i][j ]=1;

else?if?(?slt;2?)?b[i][j]=0;

for?(?k=0;klt; 9;k ?)?p[k] ;

}

}

for?(?i=0, s=1; ilt; N; i ?)?para?(?j=0;jlt;M;j ?)?{?a[i 1][j 1]=b[i][j];?si?(?b[i][ j]==0?)?s=0;?}

return?s;

}

void?main()

{

int?a[N 2][M 2], b[N][M], *p[9];

int?t, i, j ,k;

para?(?i=0;ilt;N 2;i ?)?para?(?j=0;jlt;M 2;j ?)?a[i][j ]=0;

srand((unsigned?int)time(NULL));

para?(?i=0;ilt;N;i ?)?para?( ?j=0;jlt;M;j ?)?{?k=rand()100;?a[i 1][j 1]=(?kgt;=77?)?(1): (0); ?}

coutlt;lt;"--------?T=0--------"lt;lt;endl;?mShow(a);

k=0;?t=0;

mientras?(?!k?)

{?k=mJduge(a)

;?t ;

coutlt;lt;"--------?T="lt;lt;tlt;lt;"?--------"lt;lt ;endl;?mShow(a);

}

}

La matriz a es un círculo más grande que la matriz real, y el círculo más grande siempre es igual a 0, como límite, para evitar que la matriz cruce el límite al calcular 8 datos conectados

La matriz b se utiliza para calcular el resultado esta vez. Una vez completado el cálculo, copie y sobrescriba. parte media de la matriz a como resultado

Principal El programa continúa hasta que todos los espacios están ocupados por células vivas y se detiene

Los siguientes son algunos resultados de las pruebas de configuración de M=10 y N =5