Exemplo n.º 1
0
        public void RuleDBTest()
        {
            FBlackboard blackboard = new FBlackboard();

            blackboard.AddValue <FString>("Who", "Akira");
            blackboard.AddValue <FString>("Where", "Village");
            blackboard.AddValue <FInt>("Level", 10);
            blackboard.AddValue <FInt>("Food", 10);
            blackboard.AddValue <FInt>("Wounds", 1);

            FRuleDB ruleDB = new FRuleDB();

            ruleDB.AddRule(new FRule().AddCriteria(blackboard, "Who", new FString("Akira")).AddCriteria(blackboard, "Level", EValueComparer.GreaterThan, new FInt(10)));
            ruleDB.AddRule(new FRule().AddCriteria(blackboard, "Who", new FString("Akira")).AddCriteria(blackboard, "Wounds", EValueComparer.GreaterThan, new FInt(2)));
            ruleDB.AddRule(new FRule().AddCriteria(blackboard, "Where", new FString("Village")).AddCriteria(blackboard, "Food", EValueComparer.LessThan, new FInt(2)));

            FAssert.IsFalse(ruleDB.Evaluate());
        }
Exemplo n.º 2
0
 public FCondition(FRuleDB ruleDB) => this._ruleDB = ruleDB;