Пример #1
0
 public ActionCausesIfRecord Concat(ActionCausesIfRecord record)
 {
     if (worldAction.Equals(record.worldAction))
     {
         return(new ActionCausesIfRecord(worldAction,
                                         "(" + resultExpression + ") && (" + record.resultExpression + ")",
                                         "(" + ifExpression + ") && (" + record.ifExpression + ")"));
     }
     return(null);
 }
 public bool IsFulfilled(State state, WorldAction endedWorldAction)
 {
     // Sprawdzamy czy to dana akcja się skończyła
     if(!endedWorldAction.Equals(this.worldAction))
         return false;
     // Sprawdzamy czy zachodzi warunek
     this.logicExpression.SetExpression(ifExpression);
     var fluents = this.logicExpression.GetFluentNames();
     var values = fluents.Select(t => new Tuple<string, bool>(t, state.Fluents.First(x => x.Name == t).Value));
     return this.logicExpression.Evaluate(values);
 }
Пример #3
0
        public bool IsFulfilled(State state, WorldAction endedWorldAction)
        {
            // Sprawdzamy czy to dana akcja się skończyła
            if (!endedWorldAction.Equals(this.worldAction))
            {
                return(false);
            }
            // Sprawdzamy czy zachodzi warunek
            this.logicExpression.SetExpression(ifExpression);
            var fluents = this.logicExpression.GetFluentNames();
            var values  = fluents.Select(t => new Tuple <string, bool>(t, state.Fluents.First(x => x.Name == t).Value));

            return(this.logicExpression.Evaluate(values));
        }