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 }); }