c Game of Life Ayúdame a encontrar el error
#include lt; stdio.hgt
#include string.hgt; >
char b1[20][21] = {
{"** ............."}
{ "* * ............."} ,
{"** ............. ..."},
{"................................."},
{"... ............."},
{"........................" },
{"............."},
{"..... ......... ...."},
{"........***.........."},
p>{ ".....*.........."},
{"..........*. ........ ."},
{"............."},
{"............ ."},
{"............. ....."},
{"....... ......"},
{". ............."},
{"...... .................. ."},
{"................. .."},
{"..... ............."},
{"...... .................."},
{"............."}
};
char b2[ 20][21];
pantalla vacía(char b1[][21]){
int
for(i=0; ilt; 20; i ){
printf("s\n", b1[i]
}); p>
}
int vecinos(int p, int q){
int recuento=0
int temp[8][2] ={{0, 1}, {0, -1} ,{1,0},{-1,0},{1,1},{-1,1},{1,-1},{- 1,-1}}};
int k;
for(k=0;klt;8;k)
{
int x=p temp[k][0];
int y=q temp[k][1];
if (! (xlt; 0 ||ylt; 0 ||xgt; 19 ||ygt; 19))
if (b1[x][y]=='*')
contar ;
}
devolver contar;
}
copia anulada (
char b1[][21], char b2[][21]) {
int i
for (i=0; ilt; 20; i) {
strcpy(b1[i], b2[i]);
}
}
void newboard( char b2[20][21] ]) {
int i, j, p=0, q=0
for (i=0; ilt; 20; i) {
for (j=0; jlt; 20; j) {
int d=vecinos(i,j
if (d!=2amp;amp;d!=3); ) {
b2[i][j]='.
}
si (d==3) {
b2[i][j]='*';
}
si (d==2) {
b2[i][j] =b1[i][j];
}
}
}
}
}
}
}
}
int main(){
char
display(b1);
printf("¿te gustaría jugar?(s o n)");
c=getc(stdin); p> while (c=='y') {
newboard(b2);
copyback(b1, b2);
printf("¿te gustaría jugar?(s o n)");
fflush(stdin);
c=getc(stdin);
}
}
Qiuguifu dijo anteriormente que no es necesario usar un contenedor, b2 en sí es un contenedor. ¡La estructura del algoritmo de este último no es muy clara y parece no tener nada que ver con esta pregunta! Cada nuevo estado de virus está determinado por el estado anterior y no existe un estado final.