#ifdef GRIDX
#undef GRIDX
#endif
#define GRIDX 160

#ifdef GRIDY
#undef GRIDY
#endif
#define GRIDY 120

#define GRIDSIZE 100

typedef struct {
  double x;
  double y;
} point, NodeInfo;

typedef struct {
  long x;
  long y;
} point_int;

point_int graph2grid(point p);
double GetEuclDist(point p1, point p2);
Node *whichPath(Node *oldPath, Node *newPath);
double cost(Node *to, Node *from);
double gfunction(Node *p);
double hfunction(Node *p);
int robot(Node *p);
int goal(Node *p);
int getNeighbors(Node *parent, Node **neighbor);
int nodeEqual(Node *a, Node *b);
void printNode(Node *p);
void drawArrow(Node *child, Node *parent);
void drawGrid(void);
void plotEvidence(void);
void plotPath(Node *node);
void initGraph(void);
Node *fetchGoalNode(void);
int atGoal(void);

