constrained piece movement