Queria solicitar su ayuda por que staba realizando el juego de la vida del matematico conway con la bilbioteca graph.h
Solo que esta no respeta la regla que si el estado de la celda es "vida" y no tiene alado ninguna celda "viva" esta pasa a estado "muerto"
Gracias de ante mano.
P.D:El estado vivo se representa con el color azul=1 y el muerto con el negro=0
Código
#include <graphics.h> #include <stdio.h> #include <time.h> void casilla(int x,int y); void tablero(); void verifica(); int vecino(int x,int y); void condiciones(int estado,int v,int x,int y); int main() { initwindow(700,500,"Juego de la vida"); tablero(); verifica(); closegraph(); } void casilla(int x,int y) { int c; setfillstyle(1,1); rectangle(x,y,x+10,y+10); if(c==2 || c==3) floodfill(x+5,y+5,WHITE); } void tablero() { int x,y; for(y=0;y<getmaxy();y+=10) for(x=0;x<getmaxx();x+=10) casilla(x,y); } void verifica() { int x,y,e,v,prueba=1;//e=estado v=vecinos for(y=5;y<getmaxy();y+=10) for(x=5;x<getmaxx();x+=10) { e=getpixel(x,y); v=vecino(x,y); condiciones(e,v,x,y); } verifica(); } int vecino(int x,int y) { int c=0,i,j; int limx=x+10,limy=y+10; for(i=x-10;i<=limx;i+=10) for(j=y-10;j<=limy;j+=10) if(limx!=x && limy!=y) if(x > 0 && x < getmaxx()) if( y > 0 && y < getmaxy()) if(getpixel(i,j)==1) c++; return(c); } void condiciones(int estado,int v,int x,int y) { if(estado==1 && v==0) { setfillstyle(1,0); floodfill(x,y,WHITE); } if(estado==1 && v>=3) { setfillstyle(1,0); floodfill(x,y,WHITE); } if(estado==0 && v==3) { setfillstyle(1,1); floodfill(x,y,WHITE); } }