Fall Challenge 2020 - Feedbacks & Strategies

I just use a simple vector<Action>.

Pseudo code :

class Node {
    vector<Action> actions;
    Game game;
    double eval;
}

Node parent = nextNodeToExpand();
vector<Action> actions = computePossibleActions(parent);

for (Action action : actions) {
     Node child = new Node();

     child.actions = parent.actions();
     child.actions.push(action);
     child.game = parent.game;
     child.game.play(action);
     child.eval = parent.eval() + child.game.eval() * pow(COEF_PATIENCE, depth);

     addChildToTheListOfNode(child);
}