/*genera*/ /*Fernando Galindo Soria*/ #include #include #include #include int genera(int,int,int,int,int); int linea(int,int,int,int,int,int); char gramatic[40]; void main() { int gd=DETECT,gm,i; initgraph(&gd,&gm,""); gotoxy(10,10); printf(" Genera un sistema siguiendo una secuencia del tipo es \n"); gotoxy(10,14); printf(" por ejemplo: ees es see ess esssss esess esses \n"); delay(3000); cleardevice(); do { gotoxy(1,1); printf(" escribe combinaciones de e con s \n"); printf(" t termina \n"); for (i=0; i<41; i++)gramatic[i]='\n'; gets(gramatic); cleardevice(); genera(300,300,10,90,5); printf("%s",gramatic); getch(); } while (gramatic[0] != 116); closegraph(); } int genera(int x0,int y0,int l,int an,int ind) { int x1,y1,i; i=0; while (gramatic[i] != '\n') { /* printf("gramatica %i %c %i %i ",i,gramatic[i],gramatic[i],ind);*/ if (bioskey(2)==0x04)return(0); while (ind > 0) { if (gramatic[i] == 101) { x1=x0-(l*cos(an/57.29578)); y1=y0-(l*sin(an/57.29578)); line(x0,y0,x1,y1); x0=x1; y0=y1; } if (gramatic[i] == 115) genera(x0,y0,l/1.36,an-random(y0)%120+55,ind-1); if (gramatic[i] == '\n')return(0); i++; } i++; } }