BWAPI
|
00001 #pragma once 00002 /* 00003 * EnhancedSide.h 00004 */ 00005 #include <BWAPI.h> 00006 #include <BWTA.h> 00007 00008 #include <EnhancedUI.h> 00009 00010 #include <assert.h> 00011 00012 using std::pair; 00013 using std::vector; 00014 00015 class EnhancedSide 00016 { 00017 public: 00018 enum Orientation {left, top, right, bottom}; 00019 EnhancedSide(pair<BWAPI::Position, BWAPI::Position> endPoints, Orientation orientation); 00020 ~EnhancedSide(void); 00021 pair<BWAPI::Position, BWAPI::Position> getEndPoints(void); 00022 vector<BWAPI::TilePosition> getTilePositions(void); 00023 Orientation getOrientation(void); 00024 bool isHorizontal(void); 00025 // returns length not covered / overlapping and if not zero sets the leftover 00026 // sides not covered in sidesNotCovered. 00027 int checkCoverage(EnhancedSide coveringSide, vector<EnhancedSide> * sidesNotCovered); 00028 // finds minimum gap between a side and a wall by searching for buildable tiles 00029 // returns the minimum number of tiles found 00030 int checkGap(void); 00031 void drawSide(BWAPI::Color color); 00032 void drawTiles(BWAPI::Color color); 00033 00034 private: 00035 Orientation orientation; 00036 pair<BWAPI::Position, BWAPI::Position> endPoints; 00037 pair<BWAPI::TilePosition, BWAPI::TilePosition> endTilePositions; 00038 vector<BWAPI::TilePosition> tilePositions; 00039 // is this a vertical side or not 00040 bool horizontal; 00041 };