#include #include #include #include #include #include #include #include #include int far *buffer,*buffer1,*buffer2,*buffer3,*buffer4,*buffer5,*buffer6,*buffer7,*buffer8,*buffer9, *temp; unsigned int sz; FILE *fp; FILE *fp1; void v_frente(int x,int y) { buffer=farcalloc(12,sz/2); 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); } void v_direito(int x,int y) { buffer1=farcalloc(12,sz/2); fp=fopen("batmaof1.ped","rb"); fread((int far *)buffer1,sz*6,1,fp); buffer1=buffer1+(2*(sz/2)); putimage(x,y,(int far *)buffer1,COPY_PUT); fclose(fp); } void v_esquerdo(int x,int y) { buffer2=farcalloc(12,sz/2); fp=fopen("batmaof1.ped","rb"); fread((int far *)buffer2,sz*6,1,fp); buffer2=buffer2+(3*(sz/2)); putimage(x,y,(int far *)buffer2,COPY_PUT); fclose(fp); } void M_ensonado(int x,int y) { buffer3=farcalloc(12,sz/2); fp=fopen("batmaof1.ped","rb"); fread((int far *)buffer3,sz*6,1,fp); buffer3=buffer3+(4*(sz/2)); putimage(x,y+3,(int far *)buffer3,COPY_PUT); fclose(fp); } void m_Ensonado(int x,int y) { buffer4=farcalloc(12,sz/2); fp1=fopen("batmaof2.ped","rb"); fread((int far *)buffer4,sz*6,1,fp); buffer4=buffer4+(5*(sz/2)); putimage(x,y+3,(int far *)buffer4,COPY_PUT); fclose(fp1); farfree(buffer); } void m_ensonado(int x,int y) { buffer5=farcalloc(12,sz/2); fp=fopen("batmaof1.ped","rb"); fread((int far *)buffer5,sz*6,1,fp); buffer5=buffer5+(5*(sz/2)); putimage(x,y+3,(int far *)buffer5,COPY_PUT); fclose(fp); } void v_intermedio_direito1(int x,int y) { buffer6=farcalloc(12,sz/2); fp1=fopen("batmaof2.ped","rb"); fread((int far *)buffer6,sz*6,1,fp); buffer6=buffer6+(sz/2); putimage(x,y+3,(int far *)buffer6,COPY_PUT); fclose(fp1); } void v_intermedio_esquerdo1(int x,int y) { buffer7=farcalloc(12,sz/2); fp1=fopen("batmaof2.ped","rb"); fread((int far *)buffer7,sz*6,1,fp); buffer7=buffer7+(2*(sz/2)); putimage(x,y+3,(int far *)buffer7,COPY_PUT); fclose(fp1); } void v_Intermedio_direito1(int x,int y) { buffer8=farcalloc(12,sz/2); fp1=fopen("batmaof2.ped","rb"); fread((int far *)buffer8,sz*6,1,fp); buffer8=buffer8+(3*(sz/2)); putimage(x,y+3,(int far *)buffer8,COPY_PUT); fclose(fp1); } void v_Intermedio_esquerdo1(int x,int y) { buffer9=farcalloc(12,sz/2); fp1=fopen("batmaof2.ped","rb"); fread((int far *)buffer9,sz*6,1,fp); buffer9=buffer9+(4*(sz/2)); putimage(x,y+3,(int far *)buffer9,COPY_PUT); fclose(fp1); } 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=esq; 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(150)+50); m_Ensonado(x,y); delay(random(150)+50); M_ensonado(x,y); delay(random(150)+50); } 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(150)+50); m_Ensonado(x,y); delay(random(150)+50); M_ensonado(x,y); delay(random(150)+50); } gotoxy(22,10); printf("%i",key); delay(200); } while (key!=esc); getch(); }