/// <summary> /// Supprime une action de la stratégie /// </summary> /// <param name="action">Action à supprimer</param> public void Supprimer(ActionRobot action) { Actions.Remove(action); while (Actions.Count == 0) { Thread.Sleep(20); } }
/// <summary> /// Compare la priorité de l'action à celle d'une autre action en tenant compte des condition d'éxecution /// </summary> /// <param name="autre">Action à comparer</param> /// <returns>Résultat de la comparaison ({ -1; 0; 1 })</returns> public int CompareTo(ActionRobot autre) { int priorite, autrePriorite; bool possible, autrePossible; if (autre == null) { return(1); } priorite = Priorite; autrePriorite = autre.Priorite; possible = ExecutionPossible; autrePossible = autre.ExecutionPossible; return(!possible && !autrePossible ? 0 : possible && !autrePossible ? 1 : !possible && autrePossible ? -1 : priorite > autrePriorite ? 1 : priorite < autrePriorite ? -1 : 0); }
/// <summary> /// Recherche un élément existant dans la liste des actions /// </summary> /// <param name="action">Action à rechercher</param> /// <returns>Retourne si la stratégie contient l'action spécifiée</returns> public bool Contient(ActionRobot action) { return(Actions.Contains(action)); }
/// <summary> /// Ajoute une action à la stratégie /// </summary> /// <param name="action">Action à ajouter</param> public void Ajouter(ActionRobot action) { Actions.Add(action); }