/* 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() { float D,x2d,y2d,x2d1,y2d1,Kc; int x0,z0,x1,z1,x2,z2,x3,z3, bmp[90][90]; float x20,y20,x21,y21,x22,y22,x23,y23,xc,zc; int gd=DETECT,gm,i; unsigned char c; initgraph(&gd,&gm,""); setrgbpalette(0, 63,63,63); setrgbpalette(1, 0, 0, 0); setcolor(1); 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); for(xc=0;xc<90;xc++) for(zc=0;zc<90;zc++) bmp[xc][zc]=0; D=140; Kc=50; x0=10; z0=10; x1=100; z1=10; x2=100; z2=100; x3=10; z3=100; xc=x0+random(x1-x0); zc=z0+random(z2-z0); x20=x0*D/(D-z0); y20=(Kc)*D/(D-z0); x21=x1*D/(D-z1); y21=(Kc)*D/(D-z1); x22=x2*D/(D-z2); y22=(Kc)*D/(D-z2); x23=x3*D/(D-z3); y23=(Kc)*D/(D-z3); xc=20; zc=50; x2d=xc*D/(D-zc); y2d=(Kc)*D/(D-zc); i=0; while(!kbhit()&&(i<=30000)){ // if(random(30000)==347){ xc=random(getmaxx()); yc=random(getmaxy());} xc+=(random(3)-1); zc+=(random(3)-1); if(xc<=x0)xc=x1-4;if(xc>=x1)xc=x0+4;if(zc<=z0)zc=z2-4;if(zc>=z2)zc=z0+4; bmp[xc-x0][zc-z0]++; i++; } line(x20,y20,x21,y21); line(x21,y21,x22,y22); line(x22,y22,x23,y23); line(x23,y23,x20,y20); for(zc=z0;zc