void MovePieces()
    {
        Debug.Log("move pieces called");

        PipeBehaviour dropped = pieces.Dequeue();

        dropped.transform.rotation = Quaternion.identity;
        dropped.transform.position = pieceLocations[0];
        dropped.RandomRotation();

        for (int i = pipeBoxes.Count; i > 0; i--)
        {
            PipeBehaviour iPiece = pieces.Dequeue();
            //iPiece.transform.rotation = Quaternion.identity;
            iPiece.transform.position = pieceLocations[i];

            iPiece.Freeze();
            pieces.Enqueue(iPiece);
        }


        dropped.Freeze();
        pieces.Enqueue(dropped);
        //dropped.RandomRotation();

        EnableInput();
    }
    private static int YPositionComparison(PipeBehaviour a, PipeBehaviour b)
    {
        if (a == null)
        {
            return((b == null) ? 0 : -1);
        }
        if (b == null)
        {
            return(1);
        }

        var ya = a.transform.position.y;
        var yb = b.transform.position.y;

        return(ya.CompareTo(yb));
    }