Exemple #1
0
        private void SetUp()
        {
            var previous = Guid.NewGuid();
            var results  = new List <Tile>();

            for (var i = 0; i < binaryValue.Length; i++)
            {
                var bit = binaryValue[i] == '0' ? (AbstractBit) new ZeroBit(binaryValue, i, Modes.Copy, signal) : new OneBit(binaryValue, i, Modes.Copy, signal);

                if (i == 0)
                {
                    bit.SouthGlue = GlueFactory.Copier(binaryValue, signal);
                }
                else
                {
                    bit.SouthGlue = new Glue(previous.ToString());
                }

                if (i + 1 == binaryValue.Length)
                {
                    bit.NorthGlue = startGlue;
                }
                else
                {
                    previous      = Guid.NewGuid();
                    bit.NorthGlue = new Glue(previous.ToString());
                }


                results.AddRange(bit.Tiles());
            }

            tiles.AddRange(results);
        }
        private void First()
        {
            var connector = Tile(0);

            connector.South = GlueFactory.IncrementStopper(binaryValue, signal);

            var middleZ0 = Tile(1);

            connector.North = Bind(connector, middleZ0);
            middleZ0.South  = connector.North;


            var middleZ1 = Tile(2);

            middleZ0.Up   = Bind(middleZ0, middleZ1);
            middleZ1.Down = middleZ0.Up;


            var rightZ1 = Tile(3);

            middleZ1.East = Bind(middleZ1, rightZ1);
            rightZ1.West  = middleZ1.East;

            var rightZ0 = Tile(4);

            rightZ1.Down  = Bind(rightZ1, rightZ0);
            rightZ0.Up    = rightZ1.Down;
            rightZ0.North = GlueFactory.Copier(binaryValue, signal);
            tiles.AddRange(new [] { connector, middleZ0, middleZ1, rightZ0, rightZ1 });
        }