/* Evolucion El juego de la Naturaleza 2 Cordilleras Septiembre de 1999*/ /* Se autoriza la distribucion y uso libre de este programa (freeware) */ /* Fernando Galindo Soria Cd. de Mexico */ /*Modificado el 7 x 2004 genera paisajes brownianos en un espacio toroidal*/ #include #include #include #include #include #include void escrcolordac16(char ,char,char,char); void main() { int gd=DETECT,gm,xc,yc,i; unsigned char c; initgraph(&gd,&gm,""); randomize(); // mensaje de inicio cleardevice(); printf("Evolucion El juego de la Naturaleza 2 Cordilleras\n"); printf("programa que genera cordilleras en forma aleatoria\n"); printf("25 de septiembre de 1999\n"); printf("Se autoriza la distribucion y uso libre de este programa (freeware)\n"); printf("Fernando Galindo Soria Cd. de Mexico\n"); printf("\n el programa termina con cualquier tecla\n"); printf("\n oprime una tecla para continuar"); getch(); cleardevice(); for(i=1;i<16;i++) escrcolordac16(i,i*4,i*4,i*4); line(20,20,600,20); line(600,20,600,420); line(600,420,20,420); line(20,420,20,20); xc=100+random(400); yc=100+random(200); while(!kbhit()){ // if(random(30000)==347){ xc=random(getmaxx()); yc=random(getmaxy());} xc+=(random(3)-1); yc+=(random(3)-1); if(xc<=20)xc=598; if(xc>=600)xc=22; if(yc<=20)yc=418; if(yc>=420)yc=22; c=getpixel(xc,yc)+1; if(c>16)c=0; putpixel(xc,yc,c); } getch(); closegraph(); } /*cambia de color paleta llamando directamente a los puertos del convertidor analogico digital de la tarjeta de video 31/iii/96 utiliza initgraph y maneja paleta rgb de 16 colores b(lue) g(reen) r(ed) 14/iv/96 */ void escrcolordac16(char color,char r,char g,char b) { char indcol[]={0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63}; outportb(0x3C8,indcol[color]);/*inicializa el color*/ outportb(0x3C9,r); outportb(0x3C9,g); outportb(0x3C9,b); }