コード例 #1
0
ファイル: GMTests.cs プロジェクト: Rashair/TheProjectGame
        public List <(AbstractField, int, Direction)> GetNeighbours(AbstractField field, AbstractField[][] board, int height, int width)
        {
            int[] center = field.GetPosition();
            List <(AbstractField, int, Direction)> neighbours = new List <(AbstractField, int, Direction)>();
            var neighbourCoordinates = DirectionExtensions.GetCoordinatesAroundCenter(center);

            for (int i = 0; i < neighbourCoordinates.Length; i++)
            {
                var(dir, y, x) = neighbourCoordinates[i];
                if (y >= 0 && y < height && x >= 0 && x < width)
                {
                    neighbours.Add((board[y][x], int.MaxValue, dir));
                }
            }
            return(neighbours);
        }
コード例 #2
0
        public void TestGetCoordinatesAroundCenterMiddleField()
        {
            // Arrange
            (int y, int x)center = (5, 4);

            // Act
            var result = DirectionExtensions.GetCoordinatesAroundCenter(center);

            // Assert
            Assert.Equal(9, result.Length);
            Assert.Contains((Direction.SW, center.y - 1, center.x - 1), result);
            Assert.Contains((Direction.S, center.y - 1, center.x), result);
            Assert.Contains((Direction.SE, center.y - 1, center.x + 1), result);
            Assert.Contains((Direction.W, center.y, center.x - 1), result);
            Assert.Contains((Direction.FromCurrent, center.y, center.x), result);
            Assert.Contains((Direction.E, center.y, center.x + 1), result);
            Assert.Contains((Direction.NW, center.y + 1, center.x - 1), result);
            Assert.Contains((Direction.N, center.y + 1, center.x), result);
            Assert.Contains((Direction.NE, center.y + 1, center.x + 1), result);
        }