Título: El juego de la vida de Jhon Conway Publicado por: o0leumas0o en 21 Noviembre 2011, 18:16 pm Hola,
Me gustaria que me ayudaran en mi trabajo sobre el jeugo de la vida de Jhon conway. Tengo un problema, y esque no se como ir a la siguiente generacion. Es decir cuando el usuario establece la casilla, apreta "s" y deberian morir o reaparacer depndiendo de la vecinas. Aqui led dej mi codigo del tablero. Como pueden observar, cuan apreta la "s" va a un "void seguent_generacio (void)", le dejo el codigo de verificacion que esta mal, pero no se como hacerlo ya. Gracias por adelantado #include <stdio.h> #include <stdlib.h> #include <conio2.h> #define FILES 24 #define COLUMNES 80 #define FINAL 'z' #define CELULA 3 #define AMUNT 72 #define AVALL 80 #define ESQUERRA 75 #define DRETA 77 void dibuixa_quadre (void); void seguent_generacio (void); int controlint[24][80]; int controlintcop[24][80]; int x=0, x2=0; // Recoger las teclas del usuario int i=0, j=0, cont=0; int main (void) { int medcols, medfils; // Posicion del cursor clrscr(); //Limpiar la pantalla dibuixa_quadre (); //Dibujar el cuadrado medcols = COLUMNES / 2; medfils = FILES /2; gotoxy (medcols,medfils); //gotoxy sirve para marcar la posicion, ahora esta en el centro while (x!= FINAL){ x=getch(); //es lo mismo que scanf, pero este no muestra las teclas por pantalla if(x==224){ x2=getch(); switch (x2){ case AMUNT: if (medfils-2>0) medfils-=2; break; case AVALL: if (medfils+2<=FILES) medfils+=2; break; case ESQUERRA: if (medcols-2>0) medcols-=2; break; case DRETA: if (medcols+2<COLUMNES) medcols+=2; break; } gotoxy (medcols,medfils); } //Se ha decidido que si apreta la tecla espacio se imprima el caracter if (x==32){ controlint[medfils][medcols]=1; printf("%c", CELULA); gotoxy (medcols,medfils);} if (x=='s'){seguent_generacio();} } system ("pause"); } void dibuixa_quadre (void) { int i=0, j=0; for (i=0;i<24;i++){ for (j=0;j<80;j++){ controlint[j]=0;}} //inicialitzar el array i=0; j=0; for (i=0;i<24;i++){ for (j=0;j<80;j++){ controlintcop[j]=2;}} //inicialitzar el array de copia gotoxy (1,1); //Linia inicial de quadro printf ("%c%c%", 201,205); for (i=0; i<38;i++) printf("%c%c", 203, 205); printf("%c\n",187); for (j=0;j<12;j++){ //linias verticales for (i=0;i<39;i++) printf ("%c ", 186); printf( "%c\n",186); //linies intermitges: 204, 206, 185 if(j!=11){ printf ("%c%c", 204,205); for (i=0; i<38;i++) printf ("%c%c",206,205); printf ("%c\n",185); } //cerrar el if } //linia para cerrar 200,202,188 printf ("%c%c",200,205); for (i=0; i<38;i++) printf ("%c%c",202,205); printf ("%c",188); } void seguent_generacio (void){ i=0; j=0; for (i=0; i<FILES; i++){ for (j=0; j<COLUMNES; j++){ gotoxy (j,i); if(i-2>0 && controlint[i-2][j]==1){cont++;}; if(i-2>0 && j-2>0 && controlint[i-2][j-2]==1){cont++;}; if(i+2<FILES && controlint[i+2][j]==1){cont++;}; if(i+2<FILES && j+2<COLUMNES && controlint[i+2][j+2]==1){cont++;}; if(j-2>0 && controlint[j-2]==1){cont++;}; if(j+2<COLUMNES && controlint[j+2]==1){cont++;}; if (controlint[j]=1){ if (controlint [j-2]=1){cont++;} if (controlint [j+2]=1){cont++;} if (controlint [i-2][j]=1){cont++;} if (controlint [i+2][j]=1){cont++;} if (controlint [i-2][j-2]=1){cont++;} if (controlint [i-2][j+2]=1){cont++;} if (controlint [i+2][j-2]=1){cont++;} if (controlint [i+2][j+2]=1){cont++;}} if (cont<=1 || cont>=4) { controlintcop[j]=0; printf (" "); gotoxy (j,i); } else { controlintcop[j]=1; printf ("%c",CELULA); gotoxy (j,i); } if (controlint[j]=0){ if (controlint [j-2]=1){cont++;} if (controlint [j+2]=1){cont++;} if (controlint [i-2][j]=1){cont++;} if (controlint [i+2][j]=1){cont++;} if (controlint [i-2][j-2]=1){cont++;} if (controlint [i-2][j+2]=1){cont++;} if (controlint [i+2][j-2]=1){cont++;} if (controlint [i+2][j+2]=1){cont++;}} if (cont==3) { controlintcop[j]=1; printf ("%c", CELULA); gotoxy (j,i); }} for (i = 0; i< FILES; i++) { for (j = 0; j< COLUMNES; j++){ gotoxy (j,i); if ( controlintcop[j]==0) { controlintcop[j]=0; controlint[j]=0; printf (" "); gotoxy (j,i); } if ( controlintcop[j]==1) { controlintcop[j]=1; controlint[j]=1; printf ("%c",CELULA); gotoxy (j,i);}}} } |