public AStarNode(AStarNode previousNode, VacuumAgent.VacuumAction action) { _action = action; _state = new CustomEnvState(previousNode._state, action); /// Calcul du cout associe a ce noeud /// Le cout pour atteindre ce noeud est donnee par le coup des actions precedente _costToRechNode = previousNode._costToRechNode; if (previousNode._action == VacuumAgent.VacuumAction.GrabClean) { /// On ajoute 1 si l'action precedente est grab clean car cela represente deux actions _costToRechNode += 2; } else { _costToRechNode += 1; } _costToReachSolution = _costToRechNode + (action == VacuumAgent.VacuumAction.Clean ? 0 : (action == VacuumAgent.VacuumAction.GrabClean ? 1 : _state.EuclidianActionHeuristic())); }
public AStarNode(CustomEnvState initialState) { _state = initialState; _costToRechNode = 0; _costToReachSolution = _state.EuclidianActionHeuristic(); }