private boolean canMoveBoxAt(PositionSwitcher movement, Box box) { if (box != null) { Position newBoxPos = movement.change(box.getPosition()); return isEmpty(newBoxPos); } return false; }
public void movePlayer(PositionSwitcher movement) { Position newPlayerPos = movement.change(player.getPosition()); Box box = boxIn(newPlayerPos); if (canMoveBoxAt(movement, box)) { box.move(movement); player.move(movement); } else if (isEmpty(newPlayerPos)) { player.move(movement); } }