#include <allegro.h> #include "main.h" void trajectory(char x1,char y1,char x2,char y2) { char x,y,ox,oy; int c=0; x=x1;y=y1; while((x!=x2)||(y!=y2)) { ox=x;oy=y; // zachovanie starej pozicie if(x2<x) x-=1; // posuvanie if(x2>x) x+=1; if(y2<y) y-=1; if(y2>y) y+=1; if(pole[x][y]==0) // ked sa neda pohnut na policko if(pole[x][oy]!=0) y=oy; // skus ist spet o y if(pole[x][y]==0) if(pole[ox][y]!=0) x=ox; // alebo o x if(pole[x][y]==0){x=ox;y=oy;} // ak nic nepomaha tak zastan traj_xy[c][0]=x-ox; // zapisanie do trajektorie x traj_xy[c][1]=y-oy; // zapisanie do trajektorie y if(traj_xy[c][0]==0&&traj_xy[c][1]==0) break; // stoji na mieste? c++; // dalsi krok if(c>198) break; // out of trajectory } traj_xy[c][0]=0; traj_xy[c][1]=0; }