void CFeatureStateRewardModel::nextStep(CStateCollection *, CAction *, double reward, CStateCollection *newStateCol) { CState *newState = newStateCol->getState(discretizer); if (newState->getStateProperties()->isType(FEATURESTATE)) { for (unsigned int i = 0; i < newState->getNumContinuousStates(); i++) { rewards[newState->getDiscreteState(i)] += reward * newState->getContinuousState(i); visits[newState->getDiscreteState(i)] += newState->getContinuousState(i); } } else { if (newState->getStateProperties()->isType(DISCRETESTATE)) { rewards[newState->getDiscreteState(0)] += reward ; visits[newState->getDiscreteState(0)] += 1.0; } } }