CISC181 S2017 DeckClass
From class_wiki
package cisc181.mylab_0; // Christopher Rasmussen // CISC181, University of Delaware // March, 2015 import java.util.ArrayList; import java.util.Collections; import java.util.Random; public class Deck { ArrayList<Card> myDeck; ArrayList<ArrayList<Card>> myHands; Random rand; // default constructor Deck() { myDeck = new ArrayList<Card>(); // initialize empty hands as ArrayList of empty ArrayLists of Cards. // at this point the number of hands has not been determined myHands = new ArrayList<ArrayList<Card>>(); // fill deck in order for (Suit s : Suit.values()) { for (Rank r : Rank.values()) { myDeck.add(new Card(r, s)); } } // prepare for random operations rand = new Random(); //Collections.shuffle(myDeck); } // print every card in the deck void print() { for (Card c : myDeck) { System.out.println(c); } System.out.println(""); } // creates empty hands and deals deck to them void deal(int numHands) { print(); for (int i = 0; i < numHands; i++) { myHands.add(new ArrayList<Card>()); } // deal randomly from deck to hands until deck is gone while (!myDeck.isEmpty()) { for (int i = 0; i < myHands.size(); i++) { int indexOfCardToDeal = rand.nextInt(myDeck.size()); Card c = myDeck.remove(indexOfCardToDeal); myHands.get(i).add(c); } } // print hands...the clunky way /* for (int i = 0; i < myHands.size(); i++) { System.out.println("Hand " + i); for (int j = 0; j < myHands.get(i).size(); j++) { System.out.println(myHands.get(i).get(j)); } System.out.println(""); } */ // print hands...like a boss for (ArrayList<Card> hand : myHands) { System.out.println("Hand " + myHands.indexOf(hand)); for (Card c : hand) { System.out.println(c); } System.out.println(); } } }