コード例 #1
0
        protected override void InitializeFuzzyModule()
        {
            InitializeDistanceToTarget(out var targetClose, out var targetMedium, out var targetFar);

            InitializeDesirability(out var undesirable, out var desirable, out var veryDesirable);

            var ammoStatus = FuzzyModule.CreateFlv("ammoStatus");
            var ammoLoads  = ammoStatus.AddRightShoulderSet("ammoLoads", 10, 12, 15);
            var ammoOkay   = ammoStatus.AddTriangularSet("ammoOkay", 5, 10, 12);
            var ammoLow    = ammoStatus.AddTriangularSet("ammoLow", 0, 2, 6);

            FuzzyModule.AddRule(new FzAnd(targetClose, ammoLoads), undesirable);
            FuzzyModule.AddRule(new FzAnd(targetClose, ammoOkay), undesirable);
            FuzzyModule.AddRule(new FzAnd(targetClose, ammoLow), undesirable);

            FuzzyModule.AddRule(new FzAnd(targetMedium, ammoLoads), veryDesirable);
            FuzzyModule.AddRule(new FzAnd(targetMedium, ammoOkay), veryDesirable);
            FuzzyModule.AddRule(new FzAnd(targetMedium, ammoLow), desirable);
            FuzzyModule.AddRule(new FzAnd(targetFar, ammoLoads), desirable);
            FuzzyModule.AddRule(new FzAnd(targetFar, ammoOkay), undesirable);
            FuzzyModule.AddRule(new FzAnd(targetFar, ammoLow), undesirable);
        }