Beispiel #1
0
int main()
{
    int array[15][25] =
    {
        {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
        {2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
        {2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
        {2,0,0,2,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,0,0,0,0,2},
        {2,0,0,2,0,0,2,2,2,2,0,0,2,0,0,0,0,0,0,2,0,0,0,0,2},
        {2,0,0,2,0,0,2,0,0,2,0,0,2,0,0,0,0,0,0,2,0,0,0,0,2},
        {2,0,0,2,0,0,2,0,0,2,0,0,2,0,0,0,0,0,0,2,0,0,0,0,2},
        {2,0,0,2,0,0,2,0,0,2,0,0,2,0,0,0,0,0,0,2,0,0,0,0,2},
        {2,0,0,2,0,0,2,0,0,2,0,0,2,0,0,0,0,0,0,2,0,0,0,0,2},
        {2,0,0,2,0,0,2,0,0,2,0,0,2,0,0,0,0,0,0,2,0,0,0,0,2},
        {2,0,0,2,0,0,2,0,0,2,0,0,2,0,0,0,0,0,0,2,0,0,0,0,2},
        {2,0,0,2,2,2,2,0,0,2,2,2,2,0,0,0,0,0,0,2,2,2,2,0,2},
        {2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
        {2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
        {2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},
    };
    struct maze_map *map = create_map((int*)array,25,15);
    struct A_star_procedure *astar = create_astar(maze_get_neighbors,maze_cost_2_neighbor,maze_cost_2_goal);
    show_maze(map,astar,1,1,4,10);
    show_maze(map,astar,1,1,11,10);
    show_maze(map,astar,1,1,4,1);
    destroy_map(&map);
    destroy_Astar(&astar);
    return 0;
}
Beispiel #2
0
main()
{
   randomize();
   fill_maze_with_wall();
   build_maze(1, 1, RIGHT_BOUND, BOTTOM_BOUND);
   search_target_xy(&tx, &ty);
   memset(mark, 0, sizeof(mark));
   show_maze(0, 0, RIGHT_BOUND+1, BOTTOM_BOUND+1);
   save_sth_under_target();
   draw_target();
   bioskey(0);
   init_bug(1, 1, 0);
   old_8h = getvect(8);
   old_9h = getvect(9);
   setvect(8, int_8h);
   setvect(9, int_9h);
   while(!stop)
   {
      if(move_bug(bug[0].x, bug[0].y, tx, ty) == 1) /* target has been reached */
      {
         bug_cry();
         break;
      }
   }
   setvect(8, old_8h);
   setvect(9, old_9h);
   bioskey(0);
}