BWAPI
BasicAIModule/include/TacticalBuildingPlacer.h
Go to the documentation of this file.
00001 #pragma once
00002 /*
00003  * TacticalBuildingPlacer.h
00004  */
00005 #include <BWAPI.h>
00006 #include <BWTA.h>
00007 #include <BWSAL.h>
00008 
00009 #include <EnhancedUI.h>
00010 #include <EnhancedSide.h>
00011 #include <EnhancedChokepoint.h>
00012 
00013 #include <assert.h>
00014 
00015 using std::pair;
00016 using std::vector;
00017 using std::set;
00018 
00019 class TacticalBuildingPlacer
00020 {
00021 public:
00022         // TacticalBuildingPlacer is a singleton
00023         static TacticalBuildingPlacer& instance() { static TacticalBuildingPlacer s; return s; }
00024         ~TacticalBuildingPlacer(void);
00025 
00026         void analyze(void);
00027         void draw(void);
00028         void update(void);
00029         BWAPI::TilePosition reserveBuildLocation(BWAPI::UnitType unitType, BWAPI::TilePosition seedLocation, BWAPI::Unit *builder = NULL);
00030 
00031 private:
00032         TacticalBuildingPlacer();
00033         // search for optimal build pattern to wall off chokepoint in a region
00034         vector<BWAPI::TilePosition> chokepointBuildPatternSearch(EnhancedChokepoint ecpoint, BWTA::Region * region);
00035 
00036         vector<pair<BWTA::Region *, vector<EnhancedChokepoint>>> regionsToChokepoints;
00037         // for chokepointBuildPatternSearch() return
00038         vector<vector<BWAPI::TilePosition>> chokepointBuildLocations;
00039         BWSAL::BFSBuildingPlacer buildingPlacer;
00040 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines