#ifndef BugBots_Utility_hpp #define BugBots_Utility_hpp #include"BugBots.hpp" unsigned int ABS(int x) { return x >= 0? x : 0 - x; } template T MAX(T x, T y) { return x > y ? x : y; } class Position; class Offset; class Wrapper; class Position { public: Position(){}; Position(int, int); Position(const Position&); void SetX(int); void SetY(int); int GetX()const; int GetY()const; int Distance(const Position&)const; size_t Hash()const; Position operator+(const Offset&); Offset operator-(const Position&); bool operator==(const Position&)const; private: int x; int y; }; class Offset { public: Offset(){} Offset(int, int); Offset(const Offset&); void SetX(int); void SetY(int); int GetX()const; int GetY()const; int Length()const; Position operator+(const Position&)const; bool operator==(const Offset&)const; private: int x; int y; }; class Wrapper { public: Wrapper(){}; private: Item * item; friend World; }; class hash { public: size_t operator()(const Position&)const; }; #endif