Can I have some help starting an OOP project I have for next week?

Here is how you draw a tile from the bag. Don't try to copy and paste this code. If you do, your prof will assume you've cheated. It is here as an example.. You can try to understand it and adapt it to your own code.

#include <vector>
#include <string>
#include <algorithm>
#include <random>

using namespace std;

//Prepare random number generator:
std::random_device rd;  
std::mt19937 generator(rd());  

using Bag = vector<char>;

//This is for convenience in generating the bag prototype.
pair<char,int> tileCounter[] = {
    {'a', 9}, {'b', 2}, {'c', 2}, {'d', 4}, {'e', 12},
    {'f', 2}, {'g', 3}, {'h', 2}, {'i', 9}, {'j', 1},
    {'k', 1}, {'l', 4}, {'m', 2}, {'n', 6}, {'o', 8},
    {'p', 2}, {'q', 1}, {'r', 6}, {'s', 4}, {'t', 6},
    {'u', 4}, {'v', 2}, {'w', 2}, {'x', 1}, {'y', 2},
    {'z', 1}, {' ', 2}
};

//This function creates a the prototypical bag of tiles.
Bag getBagPrototype(){
    Bag result;
    for_each(begin(tileCounter),end(tileCounter), [&](auto tilePair){
        for(int i = 0; i < tilePair.second; ++ i){
            result.push_back(tilePair.first);
        }
    });
    return result;
}

//Select a tile from the bag (and remove it from the bag.)
char drawRandomTile(Bag& bag){
    char result;
    uniform_int_distribution<> distribution(0,bag.size() - 1);
    int tileNumber = distribution(generator);
    result = bag[tileNumber];
    bag.erase(begin(bag)+tileNumber);
    return result;
}

const Bag bagPrototype = getBagPrototype();

Bag getFilledBag(){
    return bagPrototype;
}

int main(){
    auto bag = getFilledBag();
    char drawnTile = drawRandomTile(bag);
}
/r/cpp_questions Thread Parent