private List <Action> CreateReasoningActions(CompoundFormula cf) { List <Action> lActions = new List <Action>(); Action a = null; List <Predicate> lPredicates = GetAllPredicates(cf); foreach (Predicate p in lPredicates) { a = new Action(cf.ToString() + "_" + p.ToString()); a.Preconditions = new CompoundFormula("and"); CompoundFormula cfEffects = new CompoundFormula("and"); cfEffects.AddOperand(new PredicateFormula(new KnowPredicate(p))); foreach (Predicate pOther in lPredicates) { if (pOther != p) { ((CompoundFormula)a.Preconditions).AddOperand(new PredicateFormula(new KnowPredicate(pOther))); } } a.SetEffects(cfEffects); lActions.Add(a); } return(lActions); }