#include<time.h>
#include<stdio.h>
#include<conio.h>
char far*q=1999+(char far*)0xB8000000;
char X[1000],Y[1000];
char E,e[256],far*Q[1000];
int C[25][40];
int M=3,a=20,c=59;
int b,n,x,y;
void Choque(F,f){
for(b=n=n/2*2;b<n+2;*Q[b++]=0);
}
int main(){
textmode(C40);
_setcursortype(_NOCURSOR);
clock_t T=clock();
e[77]=1,e[75]=2;
for(y=25;y--;)
for(x=40;x--;*q--=219)
C[Y[n]=y][X[n]=x]=n,
*(Q[n++]=q--)=y<4||y>11?0:b,
b=x%2+!x?b:8-b/8;
Inicio:
do if(E=kbhit()) E=getch();
while(!E&&clock()-T<M);
if(E==27&&getch()==E) return 0;
if(n=(E=='-'&&M<5)-(E=='+'&&M>1)) M+=n;
if(e[E]==1&&a&&++*Q[--a]) *Q[a+4]=0;
if(e[E]>1&&a<36&&++*Q[a+4]) *Q[a++]=0;
if(clock()-T<M) goto Inicio;
if(!X[c]||X[c]>38) x=-x;
if(!Y[c]) y=1;
if(c<80){
n=c-a;
if(n<44+(x>0)&&n>39-(x<0)) y=-1;
while(y>0) if(getch()==13) y=-1;
if(n>40&&n<43) x=0;
else if(c>40&&c<79) x=(n<41)-(n>42);
}
else{
if(b=*Q[n=c-x]*x) Choque(x=-x);
if(*Q[n=c-40*y]) Choque(y=-y);
else if(*Q[n-=x]*x*!b) Choque(x=-x,y=-y);
}
*Q[c]=0;
*Q[c=C[Y[c]+y][X[c]+x]]=15;
T=clock();
goto Inicio;
}
Comentarios sobre la versión: 1.0 (0)
No hay comentarios