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); }
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); }
public void SetDriver(IFuzzyRuleBase leftRuleBase, IFuzzyRuleBase rightRuleBase) { Driver = new ShootingDriver(leftRuleBase, rightRuleBase); }
public ShootingDriver(IFuzzyRuleBase left, IFuzzyRuleBase right) { LeftFLS = new ShootingLeftWheelFLS(left); RightFLS = new ShootingRightWheelFLS(right); }