コード例 #1
0
ファイル: NOT.cs プロジェクト: matiziel/logi_sim
        public NOT(LogicGate input)
        {
            previous_1 = input;
            previous_2 = null;

            previous_1.StatusChange += OutputChange;

            Output = !previous_1.Output;
        }
コード例 #2
0
ファイル: NAND.cs プロジェクト: matiziel/logi_sim
        public NAND(LogicGate input1, LogicGate input2)
        {
            previous_1 = input1;
            previous_2 = input2;

            previous_1.StatusChange += OutputChange;
            previous_2.StatusChange += OutputChange;

            Output = !(previous_1.Output && previous_2.Output);
        }
コード例 #3
0
ファイル: OR.cs プロジェクト: matiziel/logi_sim
        public OR(LogicGate input1, LogicGate input2)
        {
            previous_1 = input1;
            previous_2 = input2;

            previous_1.StatusChange += OutputChange;
            previous_2.StatusChange += OutputChange;

            Output = previous_1.Output || previous_2.Output;
        }
コード例 #4
0
ファイル: GateFactory.cs プロジェクト: matiziel/logi_sim
        public static LogicGate CreateGate(LogicGate input1, LogicGate input2, Type name)
        {
            switch (name)
            {
            case Type.OR:
                return(new OR(input1, input2));

            case Type.NOR:
                return(new NOR(input1, input2));

            case Type.AND:
                return(new AND(input1, input2));

            case Type.NAND:
                return(new NAND(input1, input2));

            default:
                throw new ArgumentException();
            }
        }
コード例 #5
0
ファイル: GateFactory.cs プロジェクト: matiziel/logi_sim
 public static LogicGate CreateGate(LogicGate input)
 {
     return(new NOT(input));
 }