Drugwars/main.cpp

123 lines
2.2 KiB
C++

#include <iostream>
#include <vector>
#include <map>
#define MAX_TURNS 30
enum Objects{
Acid,
Weed,
Speed,
Cocaine,
Ludes
};
class Bags{
public:
int max_Number_Items;
std::vector<Objects> items;
std::map<std::string, std::vector<int>> indexesMap;
Bags(){
indexesMap["Acid"] = std::vector<int>();
indexesMap["Weed"] = std::vector<int>();
indexesMap["Speed"] = std::vector<int>();
indexesMap["Cocaine"] = std::vector<int>();
indexesMap["Ludes"] = std::vector<int>();
}
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;
}