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);
        }
        public ShootingLeftWheelFLS(IFuzzyRuleBase ruleBase)
        {
            robotBallAngle = FuzzyShootingUtil.RobotBallAngleSet;
            goalBallAngle  = FuzzyShootingUtil.GoalBallAngleSet;
            robotGoalAngle = FuzzyShootingUtil.RobotGoalAngleSet;
            distance       = FuzzyShootingUtil.DistanceSet;
            torque         = FuzzyShootingUtil.TorqueSet;
            listInput      = new List <FuzzySet <IInputFuzzyMember> >()
            {
                robotBallAngle, goalBallAngle, robotGoalAngle, distance
            };

            fls = new FuzzyLogicSystem(new Fuzzifier(), new CenterOfSumsDefuzzifier(), ruleBase);
        }
示例#3
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);
        }
示例#5
0
 public void SetDriver(IFuzzyRuleBase leftRuleBase, IFuzzyRuleBase rightRuleBase)
 {
     Driver = new ShootingDriver(leftRuleBase, rightRuleBase);
 }
示例#6
0
 public ShootingDriver(IFuzzyRuleBase left, IFuzzyRuleBase right)
 {
     LeftFLS  = new ShootingLeftWheelFLS(left);
     RightFLS = new ShootingRightWheelFLS(right);
 }