Beispiel #1
0
 public StringValueCompare(LogicGates logic,
                           CompareGates gate,
                           ObjectChooseOptions options,
                           Func <JObject, string> selectorA,
                           Func <JObject, string> selectorB) : base(gate, options, selectorA, selectorB)
 {
 }
Beispiel #2
0
        public static BitArray Add(BitArray numerator, BitArray denominator)
        {
            if (numerator.Length != denominator.Length)
            {
                throw (new Exception("Numerator and denominator but be of equal length"));
            }

            BitArray result = new BitArray(numerator.Length + 1); //Result can be on bit longer due to carry bit

            bool carry = false;

            for (int i = numerator.Length - 1; i >= 0; i--)
            {
                bool a = numerator[i];
                bool b = denominator[i];

                bool sum = LogicGates.XOrGate(LogicGates.XOrGate(a, b), carry);

                carry = LogicGates.OrGate(LogicGates.AndGate(LogicGates.XOrGate(a, b), carry), LogicGates.AndGate(a, b));

                result[i + 1] = sum;
                result[i]     = carry;
            }

            return(result);
        }
Beispiel #3
0
        public Terminal(SpriteFont Font, Texture2D Background, Texture2D Backdrop, LogicGates.CircuitBoard Alu, string Prompt = "")
        {
            cursorTimer = 0;
            cursorOn = false;
            cursorIndex = 0;

            littleMan = new LittleMan(this, Alu);
            shell = new Shell(this);
            this.font = Font;
            this.background = Background;
            this.backdrop = Backdrop;
            this.Prompt = Prompt;
            buffer = new StringBuilder();
            reportBuffer = new StringBuilder();
            this.Clear();
            offset = new Vector2(50, 50);
        }
Beispiel #4
0
        public MainWindow()
        {
            InitializeComponent();

            List <NumberSaved> numbers = new List <NumberSaved>();

            for (int i = 0; i < 5; i++)
            {
                numbers.Add(new NumberSaved());
            }

            grids = new List <DataGridView>();

            grids.Add(FirstNumber);
            grids.Add(SecondNumber);
            grids.Add(ThirdNumber);
            grids.Add(FourthNumber);
            grids.Add(FifthNumber);

            for (int j = 0; j < grids.Count; j++)
            {
                grids[j].DataSource = numbers[j].DtOfNumber;
                for (int i = 0; i < 5; i++)
                {
                    grids[j].Columns[i].Width     = 22;
                    grids[j].Columns[i].Resizable = DataGridViewTriState.False;
                }
                for (int l = 0; l < 7; l++)
                {
                    grids[j].Rows[l].Resizable = DataGridViewTriState.False;
                }
                grids[j].Rows.RemoveAt(6);
                grids[j].ColumnHeadersVisible = false;
                grids[j].RowHeadersVisible    = false;
            }

            LogicGates.Train();
            //LogicGates.Recognize();
            //Mnist.Train(18900, 0.0015);
            Debug.WriteLine("Linijka w debugu :-)");
            Console.WriteLine("Everything done.  Press any key to stop.");
            Console.ReadLine();
        }
 public static bool Input_Click(int id, int innr)
 {
     //switch (LogicGates.in_or_out)
     //{
     //    case 0:
     //        LogicGates.inid = id;
     //        LogicGates.innr = innr;
     //        if (!LogicGates.Inenabled(innr, id))
     //        {
     //            LogicGates.in_or_out = 2;
     //            return true;
     //            //input0.Background = System.Windows.Media.Brushes.Yellow;
     //        }
     //        break;
     //    case 1:                 //output id             inportid  inportnr  ouportnr
     if (!LogicGates.Inenabled(innr, id))
     {
         LogicGates.inid = id;
         LogicGates.innr = innr;
         var temp = LogicGates.gates_logic.FirstOrDefault(c => c.id == LogicGates.outid);
         if (temp != null)
         {
             temp.Connection();
         }
     }
     LogicGates.gates_logic.FirstOrDefault(c => c.id == LogicGates.outid).ChangeColor();
     //LogicGates.in_or_out = 0;
     //        break;
     //    default:
     //        LogicGates.in_or_out = 0;
     //        LogicGates.gates_logic.FirstOrDefault(c => c.id == LogicGates.outid).ChangeColor();
     //        LogicGates.gates_logic.FirstOrDefault(c => c.id == LogicGates.inid).ChangeColor();
     //        break;
     //}
     return(false);
 }
Beispiel #6
0
 public void CalculateOutputs()
 {
     Si = HAdder2.S;
     Ci = LogicGates.Or(HAdder1.C, HAdder2.C);
 }
Beispiel #7
0
 private void CalculateOutputs()
 {
     C = LogicGates.And(A, B);
     S = LogicGates.XOr(A, B);
 }
Beispiel #8
0
        private void button1_Click(object sender, EventArgs e)
        {
            List <DataTable> MatrixOfNumbers = new List <DataTable>();

            for (int i = 0; i < 5; i++)
            {
                DataTable   dt     = new DataTable();
                NumberSaved number = new NumberSaved();
                dt = number.DtOfNumber;
                MatrixOfNumbers.Add(dt);
            }


            for (int k = 0; k < grids.Count; k++)
            {
                for (int i = 0; i < 7; i++)
                {
                    for (int j = 0; j < 5; j++)
                    {
                        if (grids[k].Rows[i].Cells[j].Selected)
                        {
                            MatrixOfNumbers[k].Rows[i][j] = 1;
                        }

                        else
                        {
                            MatrixOfNumbers[k].Rows[i][j] = 0;
                        }
                    }
                }
            }

            double[]        NumberFromDt        = new double[35];
            List <double[]> listOfNumbersFromDt = new List <double[]>();

            for (int k = 0; k < MatrixOfNumbers.Count; k++)
            {
                for (int i = 0; i < MatrixOfNumbers[k].Rows.Count; i++)
                {
                    for (int j = 0; j < MatrixOfNumbers[k].Columns.Count; j++)
                    {
                        NumberFromDt[(5 * i) + j] = Convert.ToDouble(MatrixOfNumbers[k].Rows[i][j]);
                    }
                }
                listOfNumbersFromDt.Add(NumberFromDt);
                NumberFromDt = new double[35];
            }

            for (int i = 0; i < listOfNumbersFromDt.Count; i++)
            {
                LogicGates.Recognize(listOfNumbersFromDt[i]);
            }

            recognizedPostalValue.Text = "";
            probablyPostalValue.Text   = "";
            string temp = "";

            for (int i = 0; i < LogicGates.recognizedPostalNums.Count; i++)
            {
                if (LogicGates.recognizedPostalNums[i] != -1 && LogicGates.recognizedPostalNums[i] < 10)
                {
                    temp = LogicGates.recognizedPostalNums[i].ToString();
                }
                else
                {
                    temp = "?";
                }
                recognizedPostalValue.Text += temp;
                if (i == 1)
                {
                    recognizedPostalValue.Text += "-";
                }
            }

            recognizedCodePanel.Visible = true;
            LogicGates.recognizedPostalNums.Clear();
            LogicGates.probablyPostalNums.Clear();

            int ij = 0;
        }
Beispiel #9
0
    // Puzzle
    private void CreateLogicLayout()
    {
        var and10   = new LogicGates.AndGate();
        var and11   = new LogicGates.AndGate();
        var or12    = new LogicGates.OrGate();
        var and20   = new LogicGates.AndGate();
        var or21    = new LogicGates.OrGate();
        var and30   = new LogicGates.AndGate();
        var endGate = new LogicGates.LoginGate();

        _switches.Add(new LogicGates.Switch());
        _switches.Add(new LogicGates.Switch());
        _switches.Add(new LogicGates.Switch());
        _switches.Add(new LogicGates.Switch());
        _switches.Add(new LogicGates.Switch());
        _switches.Add(new LogicGates.Switch());

        LogicGates.ConnectComponents(_switches[0], and10, 0, _puzzleLayer, new List <GridPosition>()
        {
        }, new List <GridPosition>()
        {
            new GridPosition(10, 1), new GridPosition(11, 1)
        });
        LogicGates.ConnectComponents(_switches[1], and10, 1, _puzzleLayer, new List <GridPosition>()
        {
        }, new List <GridPosition>()
        {
            new GridPosition(10, 9), new GridPosition(11, 9)
        });
        LogicGates.ConnectComponents(_switches[2], and11, 0, _puzzleLayer, new List <GridPosition>()
        {
        }, new List <GridPosition>()
        {
            new GridPosition(10, 17), new GridPosition(11, 17)
        });
        LogicGates.ConnectComponents(_switches[3], and11, 1, _puzzleLayer, new List <GridPosition>()
        {
        }, new List <GridPosition>()
        {
            new GridPosition(10, 25), new GridPosition(11, 25)
        });
        LogicGates.ConnectComponents(_switches[4], or12, 0, _puzzleLayer, new List <GridPosition>()
        {
        }, new List <GridPosition>()
        {
            new GridPosition(10, 33), new GridPosition(11, 33)
        });
        LogicGates.ConnectComponents(_switches[5], or12, 1, _puzzleLayer, new List <GridPosition>()
        {
        }, new List <GridPosition>()
        {
            new GridPosition(10, 41), new GridPosition(11, 41)
        });

        LogicGates.ConnectComponents(and10, and20, 0, _puzzleLayer, new List <GridPosition>()
        {
            new GridPosition(7, 6), new GridPosition(7, 7), new GridPosition(7, 8)
        }, new List <GridPosition>()
        {
            new GridPosition(8, 5), new GridPosition(7, 9)
        });
        LogicGates.ConnectComponents(and11, and20, 1, _puzzleLayer, new List <GridPosition>()
        {
            new GridPosition(7, 18), new GridPosition(7, 19), new GridPosition(7, 20)
        }, new List <GridPosition>()
        {
            new GridPosition(8, 21), new GridPosition(7, 17)
        });
        LogicGates.ConnectComponents(and11, or21, 0, _puzzleLayer, new List <GridPosition>()
        {
            new GridPosition(7, 22), new GridPosition(7, 23), new GridPosition(7, 24)
        }, new List <GridPosition>()
        {
            new GridPosition(8, 21), new GridPosition(7, 25)
        });
        LogicGates.ConnectComponents(or12, or21, 1, _puzzleLayer, new List <GridPosition>()
        {
            new GridPosition(7, 34), new GridPosition(7, 35), new GridPosition(7, 36)
        }, new List <GridPosition>()
        {
            new GridPosition(8, 37), new GridPosition(7, 33)
        });

        LogicGates.ConnectComponents(and20, and30, 0, _puzzleLayer, new List <GridPosition>()
        {
            new GridPosition(4, 14), new GridPosition(4, 15), new GridPosition(4, 16)
        }, new List <GridPosition>()
        {
            new GridPosition(5, 13), new GridPosition(4, 17)
        });
        LogicGates.ConnectComponents(or21, and30, 1, _puzzleLayer, new List <GridPosition>()
        {
            new GridPosition(4, 26), new GridPosition(4, 27), new GridPosition(4, 28)
        }, new List <GridPosition>()
        {
            new GridPosition(4, 25), new GridPosition(5, 29)
        });

        LogicGates.ConnectComponents(and30, endGate, 0, _puzzleLayer, new List <GridPosition>()
        {
        }, new List <GridPosition>()
        {
            new GridPosition(2, 21), new GridPosition(1, 21)
        });
    }