Exemple #1
0
    private void PrintKnowledge(IKnowledge knowledge, Func <bool, bool> filter)
    {
        Log("Knowledge: ");

        foreach (var state in GetFullState())
        {
            Log("\t" + PrintState(state) + ":");
            var fun = knowledge.Get(state);

            if (GetFullState().Any(s => filter(fun(s))))
            {
                if (GetFullState().All(s => fun(s)))
                {
                    Log("\t\t... -> True");
                }
                else if (GetFullState().All(s => fun(s) == false))
                {
                    Log("\t\t... -> False");
                }
                else
                {
                    foreach (var state2 in GetFullState())
                    {
                        var result = fun(state2);
                        if (filter(result))
                        {
                            Log("\t\t" + PrintState(state2) + " -> " + (result ? "True" : "False"));
                        }
                    }
                }
            }
        }
    }
 public Func <State, bool> Get(State stateTrue)
 {
     return((s) =>
     {
         return Knowledge1.Get(stateTrue)(s) && Knowledge2.Get(stateTrue)(s);
     });
 }
Exemple #3
0
 public bool Get(State state)
 {
     return(FullState.All(s => Imply(A.Get(s)(state), B.Get(s)(state))));
 }