private boolean pieceCanBeDropped() {
        // check not at bottom
        if (currentPiece.getCoord().getY() >= (TANK_HEIGHT - currentPiece.getHeight())) {
            return false;
        }

        // check not blocked
        Block[][] layout = currentPiece.getLayout();
        for (int x = 0; x < layout.length; x++) {
            for (int y = 0; y < layout[0].length; y++) {
                if (layout[x][y] != null) {
                    int tankXCoord = currentPiece.getCoord().getX() + x;
                    int tankYCoord = currentPiece.getCoord().getY() + y;
                    if (tank[tankXCoord][tankYCoord + 1] != null) {
                        return false;
                    }
                }
            }
        }

        return true;
    }