// public func BuildBorderSquares(squareWidth: Int, containingRectangle: SquareFillRect)
 public void BuildBorderSquares(int squareWidth, SquareFillRect containingRectangle)
 {
     BuildTopRowBorderSquares(squareWidth: squareWidth, containingRectangle: containingRectangle);
     BuildRightWallBorderSquares(squareWidth: squareWidth, containingRectangle: containingRectangle);
     BuildBottomRightBorderSquares(squareWidth: squareWidth, containingRectangle: containingRectangle);
     BuildBottomLeftBorderSquares(squareWidth: squareWidth, containingRectangle: containingRectangle);
     BuildLeftWallBorderSquares(squareWidth: squareWidth, containingRectangle: containingRectangle);
 }
        // private func BuildBottomLeftBorderSquares(squareWidth: Int, containingRectangle: SquareFillRect)
        private void BuildBottomLeftBorderSquares(int squareWidth, SquareFillRect containingRectangle)
        {
            var bottomY   = (containingRectangle.Y + containingRectangle.Height) / squareWidth;
            var leftWallX = (containingRectangle.X / squareWidth) - 1;

            BottomLeftBorderSquares.Add(SquareFillPoint(x: leftWallX, y: bottomY));
            BottomLeftBorderSquares.Add(SquareFillPoint(x: leftWallX + 1, y: bottomY));

            foreach (var element in BottomLeftBorderSquares)
            {
                _borderSquares.Add(element);
            }
        }
        // private func BuildRightWallBorderSquares(squareWidth: Int, containingRectangle: SquareFillRect)
        private void BuildRightWallBorderSquares(int squareWidth, SquareFillRect containingRectangle)
        {
            var rightWallX = (containingRectangle.X + containingRectangle.Width) / squareWidth;
            var topY       = (containingRectangle.Y / squareWidth) - 1;

            var start = 1;
            var end   = containingRectangle.Height / squareWidth;

            for (int count = start; count <= end; count++)
            {
                RightWallBorderSquares.Add(SquareFillPoint(x: rightWallX, y: topY + count));
            }

            foreach (var element in RightWallBorderSquares)
            {
                _borderSquares.Add(element);
            }
        }
        // private func BuildTopRowBorderSquares(squareWidth: Int, containingRectangle: SquareFillRect)
        private void BuildTopRowBorderSquares(int squareWidth, SquareFillRect containingRectangle)
        {
            var topRowY   = (containingRectangle.Y / squareWidth) - 1;
            var leftWallX = (containingRectangle.X / squareWidth) - 1;

            var start = 0;
            var end   = (containingRectangle.Width / squareWidth) + 1;

            for (int count = start; count <= end; count++)
            {
                TopRowBorderSquares.Add(SquareFillPoint(x: leftWallX + count, y: topRowY));
            }

            foreach (var element in TopRowBorderSquares)
            {
                _borderSquares.Add(element);
            }
        }