BWAPI
BasicAIModule/include/EnhancedSide.h
Go to the documentation of this file.
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 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines