----- The following code has been added to Card.java ---- /** This constructor would be useful when we want to shuffle cards, * because a random number generator can give us a number 1-52. * We assume that our parameter i is in the range 1-52. * Because of the behavior of the % and / operators, * the denom number will be: 1=ace, 2=two, ..., 12=queen, 0=king * and the suit number will be 0=clubs up to 3=spades. * We need to say (i-1) for calculating the suit number because * we want the outcome to be in the range 0-3, and the king of spades, * being card # 52, would have been 52/13 = 4. The other kings would have * been wrong too: 13 (king of clubs) would have been called a diamond. */ public Card(int i) { int denomNum = i % 13; int suitNum = (i-1) / 13; switch(denomNum) { case 1 : denom = 'A'; break; case 0 : denom = 'K'; break; case 12 : denom = 'Q'; break; case 11 : denom = 'J'; break; case 10 : denom = 'T'; break; default : denom = (char) (denomNum + '0'); break; } switch(suitNum) { case 0 : suit = 'c'; break; case 1 : suit = 'd'; break; case 2 : suit = 'h'; break; case 3 : suit = 's'; break; } } /** Here's a nice way to print cards, using a phrase such as "four of clubs" */ public String toString() { String denomName = new String(); String suitName = new String(); switch(denom) { case '2': denomName = "two"; break; case '3': denomName = "three"; break; case '4': denomName = "four"; break; case '5': denomName = "five"; break; case '6': denomName = "six"; break; case '7': denomName = "seven"; break; case '8': denomName = "eight"; break; case '9': denomName = "nine"; break; case 'T': denomName = "ten"; break; case 'J': denomName = "jack"; break; case 'Q': denomName = "queen"; break; case 'K': denomName = "king"; break; case 'A': denomName = "ace"; break; } switch (suit) { case 'c': suitName = "clubs"; break; case 'd': suitName = "diamonds"; break; case 'h': suitName = "hearts"; break; case 's': suitName = "spades"; break; } return denomName + " of " + suitName; } /** shortForm() -- Sometimes we just want to print a shortened form * of the name of this card like J-c instead of "jack of clubs". */ public String shortForm() { return denom + "-" + suit; }