private void SetUp() { var id = Guid.NewGuid(); for (var i = 0; i < height; i++) { var tile = Tile(i); tile.North = i == 0 ? GlueFactory.PreReadLeft(signal) : G(id); id = Guid.NewGuid(); if (i + 1 == height) { tile.Up = G(id); tile.South = GlueFactory.RightTurn(); } else { tile.South = G(id); } tiles.Add(tile); } var leftZ1 = Tile(height); leftZ1.Down = G(id); id = Guid.NewGuid(); leftZ1.East = G(id); var rightZ1 = Tile(height + 1); rightZ1.West = leftZ1.East; rightZ1.East = GlueFactory.Reader(signal); tiles.Add(leftZ1); tiles.Add(rightZ1); }
private void SetUp() { var middleBottom = Tile("MiddleBottom"); var leftBottom = Tile("LeftBottom"); var leftMiddle = Tile("LeftMiddle"); var leftTopZ0 = Tile("LeftTopZ0"); var leftTopZ1 = Tile("LeftTopZ1"); var middleTop = Tile("MiddleTopZ1"); var rightTop = Tile("RightTop"); tiles.AddRange(new[] { middleBottom, leftBottom, leftMiddle, leftTopZ0, leftTopZ1, middleTop, rightTop }); middleBottom.North = GlueFactory.RightTurn(); middleBottom.West = Bind(middleBottom, leftBottom); leftBottom.East = middleBottom.West; leftBottom.North = Bind(leftBottom, leftMiddle); leftMiddle.South = leftBottom.North; leftMiddle.North = Bind(leftMiddle, leftTopZ0); leftTopZ0.South = leftMiddle.North; leftTopZ0.Up = Bind(leftTopZ0, leftTopZ1); leftTopZ1.Down = leftTopZ0.Up; leftTopZ1.East = Bind(leftTopZ1, middleTop); middleTop.West = leftTopZ1.East; middleTop.East = Bind(middleTop, rightTop); rightTop.West = middleTop.East; var id = Guid.NewGuid(); rightTop.Down = Bind(id); for (var i = 0; i < height * 2; i += 4) { var bottomLeft = Tile("BottomLeft", i); if (i == 0) { bottomLeft.Up = Bind(id); } else { bottomLeft.South = Bind(id); } var bottomRight = Tile("BottomRight", i + 1); bottomLeft.East = Bind(bottomLeft, bottomRight); bottomRight.West = bottomLeft.East; var topRight = Tile("TopRight", i + 2); bottomRight.North = Bind(bottomRight, topRight); topRight.South = bottomRight.North; var topLeft = Tile("TopLeft", i + 3); topRight.West = Bind(topRight, topLeft); topLeft.East = topRight.West; tiles.AddRange(new[] { bottomLeft, bottomRight, topRight, topLeft }); id = Guid.NewGuid(); topLeft.North = Bind(id); } var topLeftEnd = new Tile("RightTurnEnd") { East = GlueFactory.RightWall, South = Bind(id) }; tiles.Add(topLeftEnd); }