public Vector<Card> whichCardsShouldISwap() {
		
            /** Here we calculate the possible difference in rank for swapping
             * 1,2 or 3 cards. The double returns the effect on rank of the current 
             * hand for making the specified number of changes
             */ 
            
		 if (currentrank >= 4)
				return swapcardsnocards;
		 
		Double bestrankdiffonecard = rankDiffSwapOneCard();
		
		Double bestrankdifftwocards = rankDiffSwapTwoCards();
		
		Double bestrankdiffthreecards = rankDiffSwapThreeCards();
		
		
		if ((bestrankdiffonecard > bestrankdifftwocards) && (bestrankdiffonecard > bestrankdiffthreecards))
			return swapcardsonecard;
		else if (bestrankdifftwocards > bestrankdiffthreecards)
			return swapcardstwocards;
		else if (bestrankdiffthreecards != 0)
				return swapcardsthreecards;
		else return swapcardsnocards;
		
	}