#include #include #include #define MAX_TURNS 30 enum Objects{ Acid, Weed, Speed, Cocaine, Ludes }; class Bags{ public: int max_Number_Items; std::vector items; std::map> indexesMap; Bags(){ indexesMap["Acid"] = std::vector(); indexesMap["Weed"] = std::vector(); indexesMap["Speed"] = std::vector(); indexesMap["Cocaine"] = std::vector(); indexesMap["Ludes"] = std::vector(); } void setCapacity(int size){ this->max_Number_Items = size; }; void addItem(Objects item){ items.push_back(item); addIndexToIndexesMap(item); } void addIndexToIndexesMap(Objects item){ switch (item) { case Acid: indexesMap["Acid"].push_back(items.size()-1); break; case Weed: indexesMap["Weed"].push_back(items.size()-1); break; case Speed: indexesMap["Speed"].push_back(items.size()-1); break; case Cocaine: indexesMap["Cocaine"].push_back(items.size()-1); break; case Ludes: indexesMap["Ludes"].push_back(items.size()-1); break; } }; void addMultipleItems(Objects item, int n){ for (int i = 0; i< n;i++){ addItem(item); } } }; class Basic_Trenchcoat: public Bags{ public: Basic_Trenchcoat(): Bags(){ this->setCapacity(100); } }; class Player{ private: int Money = 0; Bags *inventory = new Basic_Trenchcoat(); public: ~Player(){ delete inventory; } void addItemsToInventory(Objects items, int n){ inventory->addMultipleItems(items,n); } }; class Game{ private: Player *player = new Player(); int current_Turn = 0; public: void Run(){ player->addItemsToInventory(Acid,150); }; ~Game(){ delete player; } }; int main() { Game *main = new Game; main->Run(); delete main; return 0; }