⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rule.cs

📁 Fuzzy logic controller that uses mamdani logic.
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;

namespace FuzzyLogicController.RuleEngine
{
    public class Rule
    {
        List<RuleItem> _inrules;
        List<RuleItem> _outrules;
        Connector _conn;

        #region Constructor
        public Rule(List<RuleItem> ins, List<RuleItem> outs, Connector con)
        {
            _inrules = ins;
            _outrules = outs;
            _conn = con;
        }

        public Rule() 
        {
            _inrules = new List<RuleItem>();
            _outrules = new List<RuleItem>();
            _conn = Connector.And;
        }
        #endregion

        #region Getters & Setters
        public List<RuleItem> InputRules
        {
            get { return _inrules; }
        }

        public List<RuleItem> OutputRules
        {
            get { return _outrules; }
        }

        public Connector Connection
        {
            get { return _conn; }
            set { _conn = value; }
        }
        #endregion

        #region Methods
        public void addInRuleItem(RuleItem item)
        {
            if (item != null)
            {
                _inrules.Add(item);
            }
        }

        public void addOutRuleItem(RuleItem item)
        {
            if (item != null)
            {
                _inrules.Add(item);
            }
        }

        public override string ToString()
        {
            String rule = "IF ";
            for (int j = 0; j < InputRules.Count; j++)
            {
                rule = rule + InputRules[j].Variable + " is " + InputRules[j].MemberShipValue;
                if (j != InputRules.Count - 1)
                {
                    rule = rule + " And ";
                }
            }
            rule = rule + " Then ";
            for (int j = 0; j < OutputRules.Count; j++)
            {
                rule = rule + OutputRules[j].Variable + " is " + OutputRules[j].MemberShipValue;
                if (j != OutputRules.Count - 1)
                {
                    rule = rule + " And ";
                }
            }
            return rule;
        }

        #endregion

    }

    public enum Connector
    {
        And = 0,
        Or = 1
    };

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -