#include #include #include #include #include #include #include #include #include int far *buffer, *temp; unsigned int sz; FILE *fp; FILE *fp1; void v_frente(int x,int y) { buffer=farmalloc(sz*6); fp=fopen("batmaof1.ped","rb"); fread((int far *)buffer,sz*6,1,fp); buffer=buffer+(sz/2); putimage(x,y+2,(int far *)buffer,COPY_PUT); fclose(fp); farfree(buffer); } void v_direito(int x,int y) { buffer=farmalloc(sz*6); fp=fopen("batmaof1.ped","rb"); fread((int far *)buffer,sz*6,1,fp); buffer=buffer+(2*(sz/2)); putimage(x,y,(int far *)buffer,COPY_PUT); fclose(fp); farfree(buffer); } void v_esquerdo(int x,int y) { buffer=farmalloc(sz*6); fp=fopen("batmaof1.ped","rb"); fread((int far *)buffer,sz*6,1,fp); buffer=buffer+(3*(sz/2)); putimage(x,y,(int far *)buffer,COPY_PUT); fclose(fp); farfree(buffer); } void M_ensonado(int x,int y) { buffer=farmalloc(sz*6); fp=fopen("batmaof1.ped","rb"); fread((int far *)buffer,sz*6,1,fp); buffer=buffer+(4*(sz/2)); putimage(x,y+3,(int far *)buffer,COPY_PUT); fclose(fp); farfree(buffer); } void m_ensonado(int x,int y) { buffer=farmalloc(sz*6); fp=fopen("batmaof1.ped","rb"); fread((int far *)buffer,sz*6,1,fp); buffer=buffer+(5*(sz/2)); putimage(x,y+3,(int far *)buffer,COPY_PUT); fclose(fp); farfree(buffer); } void v_intermedio_direito1(int x,int y) { buffer=farmalloc(sz*6); fp1=fopen("batmaof2.ped","rb"); fread((int far *)buffer,sz*6,1,fp); buffer=buffer+(sz/2); putimage(x,y+3,(int far *)buffer,COPY_PUT); fclose(fp1); farfree(buffer); } void v_intermedio_esquerdo1(int x,int y) { buffer=farmalloc(sz*6); fp1=fopen("batmaof2.ped","rb"); fread((int far *)buffer,sz*6,1,fp); buffer=buffer+(2*(sz/2)); putimage(x,y+3,(int far *)buffer,COPY_PUT); fclose(fp1); farfree(buffer); } void v_Intermedio_direito1(int x,int y) { buffer=farmalloc(sz*6); fp1=fopen("batmaof2.ped","rb"); fread((int far *)buffer,sz*6,1,fp); buffer=buffer+(3*(sz/2)); putimage(x,y+3,(int far *)buffer,COPY_PUT); fclose(fp1); farfree(buffer); } void v_Intermedio_esquerdo1(int x,int y) { buffer=farmalloc(sz*6); fp1=fopen("batmaof2.ped","rb"); fread((int far *)buffer,sz*6,1,fp); buffer=buffer+(4*(sz/2)); putimage(x,y+3,(int far *)buffer,COPY_PUT); fclose(fp1); farfree(buffer); } void pausa(void) { delay (5); } void main(void) { #define cima 18432 #define baixo 20480 #define esc 283 #define dir 19712 #define esq 19200 #define enter 7181 #define space 14624 #define csono 30 int gdriver = VGA, gmode = VGAHI,erro,key,x,y,keyant,sono; initgraph(&gdriver,&gmode,""); erro = graphresult(); randomize(); sz=imagesize(1,1,85,180); if (erro != grOk) /* an error occurred */ { printf("Erro gr fico: %s\n", grapherrormsg(erro)); printf("Qualquer tecla para continuar"); getch(); exit(1); } y=200; x=100; sono=0; floodfill(1, 1, 17); keyant=dir; v_direito(x,y); do { if (key) { bioskey(0); gotoxy(22,10); printf("ÛÛÛÛÛÛÛ"); } key=bioskey(1); sono++; if ((sono>=csono) && (key==dir)) { v_frente(x,y); pausa(); v_intermedio_direito1(x,y); pausa(); v_Intermedio_direito1(x,y); pausa(); v_direito(x,y); keyant=dir; sono=0; } if ((sono>=csono) && (key==esq)) { v_frente(x,y); pausa(); v_intermedio_esquerdo1(x,y); pausa(); v_Intermedio_esquerdo1(x,y); pausa(); v_esquerdo(x,y); keyant=dir; sono=0; } if ((keyant!=esq) && (key==dir) && (sono > 0)) { x=x+6; v_direito(x,y); keyant=key; } if ((keyant!=dir) && (key==esq) && (sono > 0)) { x=x-6; v_esquerdo(x,y); keyant=key; } if ((keyant==esq) && (key==dir) && (sono > 0) ) { v_Intermedio_esquerdo1(x,y); pausa(); v_intermedio_esquerdo1(x,y); pausa(); v_frente(x,y); pausa(); v_intermedio_direito1(x,y); pausa(); v_Intermedio_direito1(x,y); pausa(); v_direito(x,y); keyant=key; } if ((keyant==dir) && (key==esq) && (sono >0)) { v_Intermedio_direito1(x,y); pausa(); v_intermedio_direito1(x,y); pausa(); v_frente(x,y); pausa(); v_intermedio_esquerdo1(x,y); pausa(); v_Intermedio_esquerdo1(x,y); pausa(); v_esquerdo(x,y); keyant=key; } if ((sono>=csono) && (keyant==esq)) { if (sono==csono) { v_Intermedio_esquerdo1(x,y); pausa(); v_intermedio_esquerdo1(x,y); pausa(); v_frente(x,y); pausa(); } m_ensonado(x,y); delay(random(100)+100); M_ensonado(x,y); delay(random(100)+100); } if ((sono>=csono) && (keyant==dir)) { if (sono==csono) { v_Intermedio_direito1(x,y); pausa(); v_intermedio_direito1(x,y); pausa(); v_frente(x,y); pausa(); } m_ensonado(x,y); delay(random(100)+100); M_ensonado(x,y); delay(random(100)+100); } gotoxy(22,10); printf("%i",key); delay(200); } while (key!=esc); getch(); }