2-APL UPC project.
1package cardtable;
2
3import java.util.*;
4import javax.swing.*;
5import javax.swing.ImageIcon;
6
7public class Deck {
8 private List deck;
9 private int index;
10
11 public Deck() {
12 deck = new ArrayList();
13 index = 0;
14 Iterator suitIterator = Suit.VALUES.iterator();
15 while ( suitIterator.hasNext() ) {
16 Suit suit = (Suit) suitIterator.next();
17 Iterator rankIterator = Rank.VALUES.iterator();
18 while ( rankIterator.hasNext() ) {
19 Rank rank = (Rank) rankIterator.next();
20 java.net.URL imgURL = getClass().getResource("cards/" + Card.getFilename( suit, rank ));
21 ImageIcon cardImage = new ImageIcon(imgURL);
22 Card card = new Card( suit, rank, cardImage );
23 addCard( card );
24 }
25 }
26 }
27
28 public void addCard( Card card ) {
29 deck.add( card );
30 }
31
32 public Card dealCard() {
33 if ( index >= deck.size() )
34 return null;
35 else
36 return (Card) deck.get( index++ );
37 }
38
39
40 public void shuffle() {
41 Collections.shuffle( deck );
42 index = 0;
43 }
44
45 public boolean isEmpty() {
46 if ( index >= deck.size() )
47 return true;
48 else
49 return false;
50 }
51
52 public List getDeck() {
53 return deck;
54 }
55
56 public Card getCard(String suit, String rank) {
57 Iterator it = deck.iterator();
58 while ( it.hasNext() ) {
59 Card card = (Card) it.next();
60 if(card.getSuit().getName().toLowerCase().equals(suit) && card.getRank().getName().toLowerCase().equals(rank))
61 return card;
62 }
63 return null;
64 }
65
66}