BWAPI
|
00001 #pragma once 00002 00003 #include "Interface.h" 00004 00005 class WalkPosition 00006 { 00007 public: 00008 int x, y; 00009 00010 WalkPosition() 00011 : x(0), y(0) 00012 { } 00013 00014 WalkPosition(int x, int y) 00015 : x(x), y(y) 00016 { } 00017 00018 WalkPosition(const Position &p) 00019 : x(p.x() / 8), y(p.y() / 8) 00020 { } 00021 00022 WalkPosition(const TilePosition &p) 00023 : x(p.x() * 4), y(p.y() * 4) 00024 { } 00025 00026 inline operator Position() 00027 { 00028 return Position(x * 8, y * 8); 00029 } 00030 00031 inline operator TilePosition() 00032 { 00033 return TilePosition(x / 4, y / 4); 00034 } 00035 00036 inline bool operator==(const WalkPosition &v) const 00037 { 00038 return (x == v.x && y == v.y); 00039 } 00040 00041 inline bool operator!=(const WalkPosition &v) const 00042 { 00043 return !(x == v.x && y == v.y); 00044 } 00045 00046 inline bool operator<(const WalkPosition& v) const 00047 { 00048 if(x == v.x) 00049 return y < v.y; 00050 00051 return x < v.x; 00052 } 00053 00054 inline bool operator>(const WalkPosition& v) const 00055 { 00056 if(x == v.x) 00057 return y > v.y; 00058 00059 return x > v.x; 00060 } 00061 00062 inline Position getCenterPosition() const 00063 { 00064 return Position(x * 8 + 4, y * 8 + 4); 00065 } 00066 };