public GoalieStrategy(int strategyNumber, GoalieInputYDistance ballDistance, GoalieInputYDistance goalieDistance, GoalieOutputYDistance yOutput)
        {
            _ball_distance   = ballDistance;
            _goalie_distance = goalieDistance;
            _y_output        = yOutput;

            List <ParentRule> rules;

            switch (strategyNumber)
            {
            case 1: rules = CreateRules1();
                break;

            case 2: rules = CreateRules2();
                break;

            case 3: rules = CreateRules3();
                break;

            case 4: rules = CreateRules4();
                break;

            default: throw new ArgumentException("Startegy Number must be a number from 1 to 4 inclusive.");
            }

            _rule_base = new EvaluationTreeRuleBase(
                new List <FuzzySet <IInputFuzzyMember> >()
            {
                _ball_distance, _goalie_distance
            },
                _y_output, rules);

            _fls = new FuzzyLogicSystem(new Fuzzifier(), new CenterOfSumsDefuzzifier(), _rule_base);
        }
Esempio n. 2
0
        public GoalieStrategizer(GoalieXDistance ballDistance, GoalieXDistance goalieDistance, GoalieCategory category)
        {
            _ball_distance   = ballDistance;
            _goalie_distance = goalieDistance;
            _category        = category;

            _rule_base = new EvaluationTreeRuleBase(
                new List <FuzzySet <IInputFuzzyMember> >()
            {
                _ball_distance, _goalie_distance
            },
                category, CreateRules());

            _fls = new FuzzyLogicSystem(new Fuzzifier(), new CenterOfSumsDefuzzifier(), _rule_base);
        }
        public GoalScorer(GoalXDistance xDistance, GoalYDistance yDistance, GoalConsequence consequence)
        {
            _x_distance  = xDistance;
            _y_distance  = yDistance;
            _consequence = consequence;

            _rule_base = new EvaluationTreeRuleBase(
                new List <FuzzySet <IInputFuzzyMember> >()
            {
                _x_distance, _y_distance
            },
                Consequence, CreateRules());

            _fls = new FuzzyLogicSystem(new Fuzzifier(), new CenterOfSumsDefuzzifier(), _rule_base);
        }