#ifndef _STATE_H_ #define _STATE_H_ #include "global.h" typedef struct { Polygon *location; int *poly_states; } state_elem; class List; class State { public: State(int m_num_polygons, List *m_internal_segments, List *m_internal_polygons, int m_num_robots); ~State(); void *Move(Polygon *p, void *m_prev); // This function returns a start elem -- i.e. one which // thinks the evader could be anywhere. void *StartElem(Polygon *p); int Done(void *m_elem); void print(void *m_elem); int Value(void *m_elem); int num_robots; Polygon **robot_polygons; private: state_elem *new_elem(); int get_poly_num(Polygon *p); int num_polygons; List *internal_segments; List *internal_polygons; List *states_seen; int *robot_poly_nums; }; #endif /* _STATE_H_ */