Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Ace-Spades ? One-Spades ? Deuce-Spades ? Three-Spades There should be 13 rows of

ID: 3693906 • Letter: A

Question

Ace-Spades? One-Spades? Deuce-Spades?  Three-Spades

There should be 13 rows of 4 columns

42. A standard deck of playing cards consists of 52 cards as shown i Table 12-3. Create an array of 52 structures to match a new deck cards as shown in Table 12-3 Suit Clubs Diamonds Hearts Spades Rank Ace... King Ace...King Ace...King Ace.. .King The Order of a New Deck of Playing Cards Then simulate shuffling the deck using Algorithm 12-1. Shuffle Deck of Cards Algorithm shuffle TABLE 12-3 ALGORITHM 12-1 1 loop through each card in the deck 1 get a random number in range 0.51 2 Swap current card with card at random position 2 end loop end shuffle After the cards have been shuffled, print them.

Explanation / Answer

import java.util.*;

public class CardDeck {
public enum CardRank{DEUCE,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,JACK,QUEEN,KING,ACE}

public enum CardSuit{CLUBS,DIAMONDS,HEARTS,SPADES }

private final CardRank CardRank;
private final CardSuit CardSuit;
private CardDeck(CardRank CardRank, CardSuit CardSuit) {
this.CardRank = CardRank;
this.CardSuit = CardSuit;
}

public CardRank CardRank() { return CardRank; }
public CardSuit CardSuit() { return CardSuit; }
public String toString() { return CardRank + " of " + CardSuit; }

private static final List<CardDeck> deck = new ArrayList<CardDeck>();

// Initialize prototype deck
static {
for (CardSuit CardSuit : CardSuit.values())
for (CardRank CardRank : CardRank.values())
deck.add(new CardDeck(CardRank, CardSuit));
}

public static ArrayList<CardDeck> newDeck() {
return new ArrayList<CardDeck>(deck);
}
}

public class CardDeal {

public static void main(String args[]) {
int noOfHands = Integer.parseInt(args[0]);
int cardPerHand = Integer.parseInt(args[1]);
List<CardDeck> cardDeck = CardDeck.newDeck();
Collections.shuffle(cardDeck);
for (int i=0; i < noOfHands; i++)
System.out.println(CardDeal(cardDeck, cardPerHand));
}

public static ArrayList<CardDeck> CardDeal(List<CardDeck> cardDeck,int s) {
int sizeOfDeck = cardDeck.size();
List<CardDeck> handVw = cardDeck.subList(sizeOfDeck-s, sizeOfDeck);
ArrayList<CardDeck> cardHand = new ArrayList<CardDeck>(handVw);
handVw.clear();
return cardHand;
}
}