public BuildEstablishmentCommand NewBuildEstablishment(IPlayer player, int x, int y, VertexTileSide side) { var board = scope.Resolve<IBoard>(); var vertex = board.FindVertex(x, y, side); if (vertex == null) throw new ArgumentException($"No vertex found for given coordinates (x: {x}, y: {y}, side: {side}"); return new BuildEstablishmentCommand(player, board, vertex); }
public void IsAdjacentToTileWithSameXY(int x, int y, VertexTileSide side) { var tile = new Mock<ITile>(); tile.Setup(t => t.X).Returns(x); tile.Setup(t => t.Y).Returns(y); var vertex = new Vertex(x, y, side); Assert.True(vertex.IsAdjacentTo(tile.Object)); }
public void IsAdjacentToBottomVertex(int x, int y, int vertexX, int vertexY, VertexTileSide side, bool expected) { var vertex = new Mock<IVertex>(); vertex.Setup(i => i.X).Returns(vertexX); vertex.Setup(i => i.Y).Returns(vertexY); vertex.Setup(v => v.Side).Returns(side); var tile = new Tile(x, y, 5, MaterialType.Ore); bool result = tile.IsAdjacentTo(vertex.Object); Assert.True(result == expected, $"Result: {result}, Expected: {expected}\nTile(X: {x}, Y: {y}); Vertex(X: {vertexX}, Y: {vertexY}"); }
public void TestVertexAdjacetnCaseEast(int edgeX, int edgeY, int inputX, int inputY, VertexTileSide tileSide, bool expected) { var vertex = new Mock<IVertex>(); vertex.Setup(t => t.X).Returns(inputX); vertex.Setup(t => t.Y).Returns(inputY); vertex.Setup(t => t.Side).Returns(tileSide); var edge = new Edge(edgeX, edgeY, EdgeSide.East); bool result = edge.IsAdjacentTo(vertex.Object); Assert.True(result == expected, $"Result: {result}, Expected: {expected}\nEdge(X: {edgeX}, Y: {edgeY}, East); Vertex(X: {inputX}, Y: {inputY}, {tileSide})"); }
public void IsAdjacentToVertexCaseRight(int vertexX, int vertexY, int inputX, int inputY, VertexTileSide inputSide, bool expected) { var input = new Mock<IVertex>(); input.Setup(v => v.X).Returns(inputX); input.Setup(v => v.Y).Returns(inputY); input.Setup(v => v.Side).Returns(inputSide); var vertex = new Vertex(vertexX, vertexY, VertexTileSide.Right); bool result = vertex.IsAdjacentTo(input.Object); Assert.True(result == expected, $"Result: {result}, Expected: {expected}\nVertext(X: {vertexX}, Y: {vertexY}, Right); Vertex(X: {inputX}, Y: {inputY}, Side: {inputSide}"); }
public Vertex(int x, int y, VertexTileSide side) { X = x; Y = y; Side = side; }
public IVertex FindVertex(int x, int y, VertexTileSide side) { return Vertices.SingleOrDefault(v => v.X == x && v.Y == y && v.Side == side); }