BWAPI
|
00001 #pragma once 00002 #include <BWAPI.h> 00003 00004 class ArmyComposition 00005 { 00006 public: 00007 void addUnlimited(BWAPI::UnitType unitType, size_t nb) 00008 { 00009 m_unlimitedComposition[unitType] += nb; 00010 } 00011 00012 void addLimited(BWAPI::UnitType unitType, size_t nb) 00013 { 00014 m_limitedComposition[unitType] += nb; 00015 } 00016 00017 //typedef std::map<BWAPI::UnitType, size_t>::const_iterator const_iterator; 00018 //const_iterator begin() const { return m_unlimitedComposition.begin(); } 00019 //const_iterator end() const { return m_unlimitedComposition.end(); } 00020 00021 size_t getNbUnlimited(BWAPI::UnitType unitType) const 00022 { 00023 std::map<BWAPI::UnitType, size_t>::const_iterator it = m_unlimitedComposition.find(unitType); 00024 if (it == m_unlimitedComposition.end()) 00025 return 0; 00026 else 00027 return it->second; 00028 } 00029 size_t getNbLimited(BWAPI::UnitType unitType) const 00030 { 00031 std::map<BWAPI::UnitType, size_t>::const_iterator it = m_limitedComposition.find(unitType); 00032 if (it == m_limitedComposition.end()) 00033 return 0; 00034 else 00035 return it->second; 00036 } 00037 00038 bool operator==(const ArmyComposition& other) const 00039 { 00040 return m_unlimitedComposition == other.m_unlimitedComposition && 00041 m_limitedComposition == other.m_limitedComposition; 00042 } 00043 bool operator!=(const ArmyComposition& other) const 00044 { 00045 return m_unlimitedComposition != other.m_unlimitedComposition || 00046 m_limitedComposition != other.m_limitedComposition; 00047 } 00048 const std::map<BWAPI::UnitType, size_t>& getLimitedComposition() const { return m_limitedComposition; } 00049 const std::map<BWAPI::UnitType, size_t>& getUnlimitedComposition() const { return m_unlimitedComposition; } 00050 00051 protected: 00052 std::map<BWAPI::UnitType, size_t> m_limitedComposition; 00053 std::map<BWAPI::UnitType, size_t> m_unlimitedComposition; 00054 };