ref: 5256da0634295bcdb48c1da4ece5bddd4f75166d
dir: /path/path.h/
typedef struct Vertex Vertex; typedef struct State State; typedef struct PState PState; typedef struct Node Node; struct Vertex{ int x; int y; }; struct PState{ int open; int closed; Node *from; Node *to; }; struct State{ int blocked; PState; }; struct Node{ Vertex; State; }; int isblocked(Node*); void toggleblocked(Node*); enum{ Deuclid, Dmanhattan, Doctile, }; double eucdist(Node*, Node*); double octdist(Node*, Node*); double manhdist(Node*, Node*); extern double (*distfn)(Node*, Node*); Node* p2n(Vertex); Vertex n2p(Node*); enum{ Move8, Move4, }; extern int movemode; extern Node *grid; extern int gridwidth, gridheight; void clearpath(void); void cleargrid(void); Node* initgrid(int, int); int a∗findpath(Node*, Node*);