public Deck() { for (Card.Suit suit : Card.Suit.values()) { for (Card.Rank rank : Card.Rank.values()) { cards.add(new Card(rank, suit)); } } }
private static List<Card> makeDeck() { List<Card> cards = new ArrayList<Card>(); for (Card.Suit s : Card.Suit.values()) { for (Card.Rank r : Card.Rank.values()) { cards.add(new Card(r, s)); } } Collections.shuffle(cards); return cards; }
/** * Clear deck and initialize it with 52 * NUM_DECKS new cards. */ private void initializeDeck() { deck.clear(); for(int i = 0; i < NUM_DECKS; i++) { for(Card.Rank rank: Card.Rank.values()) { for(Card.Suit suit: Card.Suit.values()) { deck.add(new Card(rank, suit)); } } } Collections.shuffle(deck, new Random()); }
public Deck() { deck = new ArrayList<Card>(); Card.Suit[] Suits = Card.Suit.values(); Card.Rank[] Ranks = Card.Rank.values(); for (int i = 0; i < Suits.length; i++) { for (int j = 0; j < Ranks.length; j++) { deck.add(new Card(Suits[i], Ranks[j])); } } shuffle(); }
@Override public void create(int numberOfSuits, int numberOfRanks) { this.numberOfRanks = numberOfRanks; this.numberOfSuits = numberOfSuits; logger.info( format("*** Creating Deck with %s suits and %s ranks ***", numberOfSuits, numberOfRanks)); List<Card.Suit> suits = Arrays.asList(Card.Suit.values()).subList(0, numberOfSuits); List<Card.Rank> ranks = Arrays.asList(Card.Rank.values()).subList(0, numberOfRanks); cards = suits .stream() .flatMap(suit -> ranks.stream().map(rank -> new Card(rank, suit))) .collect(toList()); }