Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package model.card;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- public class DeckImpl implements Deck {
- private ArrayList<CardImpl> deck;
- private DeckImpl() {
- deck = new ArrayList<CardImpl>();
- for (Suit suit : Suit.values()) {
- for (Rank rank : Rank.values()) {
- deck.add(new CardImpl(suit, rank));
- }
- }
- }
- // removes a card from the deck and returns the card to caller
- // returns the card removed from the deck
- @Override
- public Card removeNextCard() throws IllegalStateException {
- deck.get(0);
- return deck.remove(0);
- }
- // returns the number of cards remaining in deck
- @Override
- public int cardsInDeck() {
- return deck.size();
- }
- // shuffles (randomises order) of the cards in the deck
- @Override
- public void shuffleDeck() {
- Collections.shuffle(deck);
- }
- // Creates a sorted (ordered) deck of cards
- public static Deck createSortedDeck() {
- DeckImpl deck = new DeckImpl();
- return deck;
- }
- // Creates a complete, but shuffled (randomized oder) deck of cards
- public static Deck createShuffledDeck() {
- DeckImpl deck = new DeckImpl();
- deck.shuffleDeck();
- return deck;
- }
- @Override
- public String toString() {
- return String.format("%s \n", deck);
- // // Another version
- // StringBuilder sb = new StringBuilder();
- // synchronized(deck) {
- // sb.append("Cards:\n");
- // for(Card c : deck)
- // sb.append(c);
- // return sb.toString();
- // }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement