public ControlBlocks Execute(ControlBlocks controlBlocks)
    {
        var newControlBlocks = controlBlocks.Clone();

        newControlBlocks.MoveRight();

        if (CollisionDetection.IsCollision(newControlBlocks))
        {
            ControlBlocksPresenter.PlayCollisionSound();
            return(controlBlocks);
        }
        return(newControlBlocks);
    }
    public ControlBlocks AdjustBlocksForSpin(ControlBlocks currentControlBlocks, ControlBlocks newControlBlocks)
    {
        if ((CollisionDetection.IsCollisionControlBlocksLower(newControlBlocks) &&
             CollisionDetection.IsCollisionControlBlocksUpper(newControlBlocks)) ||
            (CollisionDetection.IsCollisionControlBlocksLeftSide(newControlBlocks) &&
             CollisionDetection.IsCollisionControlBlocksRightSide(newControlBlocks)))
        {
            ControlBlocksPresenter.PlayCollisionSound();
            return(currentControlBlocks);
        }

        ControlBlocksPresenter.PlaySpinSound();
        return(AdjustBlocksForSpinLoop(newControlBlocks));
    }