int main(void){ struct point p={0,0}; struct point current; push(p); maze[p.row][p.col]=2; while(!is_empty()){ current=pop(); if(current.row==MAX_ROW-1&¤t.col==MAX_COL-1){ break; } //up if(current.row-1>=0&&maze[current.row-1][current.col]==0){ push(current); visit_maze(current.row-1,current.col,current); maze_print(); } //right if(current.col+1<MAX_COL&&maze[current.row][current.col+1]==0){ push(current); visit_maze(current.row,current.col+1,current); maze_print(); } //down if(current.row+1<MAX_ROW&&maze[current.row+1][current.col]==0){ push(current); visit_maze(current.row+1,current.col,current); maze_print(); } //left if(current.col-1>=0&&maze[current.row][current.col-1]==0){ push(current); visit_maze(current.row,current.col+1,current); maze_print(); } } if(current.row==MAX_ROW-1&¤t.col==MAX_COL-1){ printf("%d %d\n",current.row,current.col); while(predecessor[current.row][current.col].row!=-1){ current=predecessor[current.row][current.col]; printf("%d %d\n",current.row,current.col); } } else{ printf("No path.\n"); } }
void print_maze(int width, int height, mpz_t index) { maze_t *maze = maze_by_index(width, height, index); if (!maze) { fprintf(stderr, "Index number out of range\n"); exit(EX_USAGE); } maze_print(maze); maze_free(maze); }
int main(void) { srandom(time(NULL)); maze *m = maze_new(4, 5); maze_print(m); maze_free(m); }