'Update node values from leaf evaluation.
Arguments:
leaf_value -- the value of subtree evaluation from the current player\'s perspective.
c_puct -- a number in (0, inf) controlling the relative impact of values, Q, and
prior probability, P, on this node\'s score.
Returns:
None'

def update(self, leaf_value, c_puct):

    self._n_visits += 1
    self._Q += ((leaf_value - self._Q) / self._n_visits)
    if (not self.is_root()):
        self._u = (((c_puct * self._P) * np.sqrt(self._parent._n_visits)) / (1 + self._n_visits))
