/* robots.h */ /* typedefs */ typedef int DEGREE; /* 0..359 (modulo 360) */ /* Control Functions */ int scan(DEGREE dir,int resolution); /* range to nearest target */ int cannon(DEGREE dir,int range); /* 1 if fired. 0 if still loading. */ int drive(DEGREE dir,int speed); /* 1 if direction changed. 0 if not. */ int damage(void); /* 0..99. 100 => dead robot */ int speed(void); /* 0..100 */ int loc_x(void); /* 0..9999 */ int loc_y(void); /* 0..9999 */ int time(void); /* Current time (in CPU cycles) */ /* Math Functions */ unsigned int rand(unsigned int limit); /* random number [ 0..limit-1 ] */ int sqrt(int number); double sin(DEGREE angle); double cos(DEGREE angle); double tan(DEGREE angle); DEGREE atan(double ratio); DEGREE atan2(int y,int x); /* Macros */ #define status(x,y,s,d,t) { \ (x) = loc_x(); \ (y) = loc_y(); \ (s) = speed(); \ (d) = damage(); \ (t) = time(); \ } #define abs(x) ((x)<0 ? -(x) : (x)) |