import java.util.*; public class Assignment1Client { public static void main(String[] args) { PlayingCardDeck deck = new PlayingCardDeck(); PlayingCardHand[] hands = new PlayingCardHand[ 4 ]; dealAndShow(deck, hands, 13, true); //insert new cards System.out.println(); dealAndShow(deck, hands, 13, false); //append new cards System.out.println(); Random gen = new Random(); eliminateSuit(hands[gen.nextInt(hands.length)], PlayingCard.Suit.values()[gen.nextInt( PlayingCard.Suit.values().length )] ); } //Deal and display complete hands of PlayingCards from the deck of cards provided // Parameter numberOfCardsInHand describes the # cards in each complete hand // Parameter sorted determined the method of adding a new card to eah hand public static void dealAndShow(PlayingCardDeck deck, PlayingCardHand[] hands, int numberOfCardsInHand, boolean sorted ) { deck.shuffle(); for (int k = 0; k < hands.length; k++) hands[k] = new PlayingCardHand(numberOfCardsInHand); deal(deck, hands, numberOfCardsInHand, sorted); show(hands, sorted); } private static void deal(PlayingCardDeck deck, PlayingCardHand[] hands, int numberOfCardsInHand, boolean sorted ) { for (int k = 1; k <= numberOfCardsInHand; k++) for (PlayingCardHand hand : hands) { PlayingCard card = deck.deal(); if (sorted) hand.insertCard( card ); else hand.appendCard( card ); } } private static void show(PlayingCardHand[] hands, boolean sorted) { for (PlayingCardHand hand : hands) { if (!sorted) hand.sortCards(); System.out.println( hand ); } } //Remove all cards of a given suit from a hand of PlayingCards private static void eliminateSuit(PlayingCardHand hand, PlayingCard.Suit suit) { System.out.println(hand); System.out.print("Removing: "); for (PlayingCard card : hand.getCards()) if (card.getSuit() == suit) { System.out.print(" " + card); hand.removeCard(card); } System.out.println(); System.out.println(hand + " " + hand.getNumberOfCards() + " cards"); } }