#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();
}