public void CheckBallCenterX([Values(1, 3, 5)]int triangleSize)
        {
            // Given
            var cellsCount = PositionHelper.GetCellsCount(triangleSize);

            var generator = new GridGenerator(cellsCount, new PortableSize(1, 10));
            var column = triangleSize / 2;
            var trianglePosition = new TrianglePosition(0, column, triangleSize);

            // When
            var centerOfMiddle = generator.GetCenterOfCell(trianglePosition);

            // Then
            centerOfMiddle.X.ShouldBe(0.5);
        }
Example #2
0
        private void GenerateGridBalls(GameColorViewModel[] gameColors, Style style, GridGenerator gridGenerator)
        {
            var triangleSize = PositionHelper.GetMaxTriangleSize(gameColors.Length);

            var colorsCount = gameColors.Length;
            var size = gridGenerator.EllipseSize;

            for (var index = 0; index < colorsCount; index++)
            {
                var circle = new Ellipse();

                var targetModel = gameColors[index];

                circle.DataContext = targetModel;
                circle.Style = style;
                circle.Margin = new Thickness(0, 0, 0, -.75);
                circle.Width = size.Width;
                circle.Height = size.Height;

                targetModel.PropertyChanged += (_, __) => UpdateView(circle, targetModel);

                var trianglePosition = PositionHelper.GetTrianglePosition(index, triangleSize);
                var position = gridGenerator.GetCenterOfCell(trianglePosition);

                ConfigureAndAddElement(GameCanvas, circle, position);

                UpdateView(circle, targetModel);
            }
        }