DefaultCardDealer(final ImmutableSet<Card> baseDeck) { Arguments.checkIsNotNull(baseDeck, "baseDeck"); this.baseDeck = baseDeck; // initial deck shuffle liveDeck.addAll(Randomness.shuffle(baseDeck)); liveDeckItr = liveDeck.iterator(); }
private void reshuffle() { // @formatter:off [workaround for Eclipse 4.5 formatter bug; see 470977 for status] assert !discardPile.isEmpty() || !liveDeck.isEmpty(); // @formatter:on // in case reshuffle is called early for any reason, add any remaining cards in liveDeck to // discard pile // and log a warning message if (liveDeck.size() > 0) { log.warn( "Early call to reshuffle; moving {} cards from deck to discard pile...", liveDeck.size()); discardPile.addAll(liveDeck); liveDeck.clear(); } liveDeck.addAll(Randomness.shuffle(discardPile)); discardPile.clear(); liveDeckItr = liveDeck.iterator(); }