/*********************************************** ** ProjectB: Robot Control Program ** ** Subject : 433-142 Computing Fundamentals B ** ** Date : 19th September, 2001 ** ** Name : Huang Jian ** ** Enrolment number: 126432 ** ***********************************************/ /**********************************************/ /*Included Files and Symbolic Constants */ #include #define ROW 40 #define COL 80 #define FACE 4 #define FACE1 '^' #define FACE2 '<' #define FACE3 'v' #define FACE4 '>' #define DOT '.' #define SPACE ' ' #define WALL '*' #define TRUE 1 #define FALSE 0 /**********************************************/ /*Function Prototypes */ void init_map (char [][COL]); void get_map (char [][COL]); void print_map (char [][COL], char *[]); void execute (char [][COL]); void left_turn (char [], char *); void right_turn (char [], char *); char *go_forward (char [][COL], char *); char *locate_robot (char [][COL]); void add_rec (char *, char *[]); void add_id (char, char[]); void boxes_to_move (char [][COL], char [], char *, char); void what_in_front(char [][COL], char [], char *, char); int is_robot (char); int is_box (char *); int is_element(char, char []); int is_one_movable (char *, char); int is_all_movable (char [][COL], char, char); int is_all_boxes_movable (char [][COL], char [], char); void move_box (char [][COL], char [], char); void move_line_box (char *, char[], char); void forward_box (char *, char); void forward_robot (char *); /**********************************************/ /*Main Function */ int main (void) { char map [ROW][COL]; init_map (map); get_map (map); execute (map); return 0; } /**********************************************/ /*Initial Map Array */ void init_map (char map[][COL]) { int i, j; for (i=0;i