ca.ualberta.cs.poker
Class Deck

java.lang.Object
  extended by ca.ualberta.cs.poker.Deck

public class Deck
extends java.lang.Object

A Deck of 52 Cards which can be dealt and shuffled

Author:
Aaron Davidson

Field Summary
static int NUM_CARDS
           
 
Constructor Summary
Deck()
          Constructor.
Deck(long seed)
          Constructor w/ shuffle seed.
 
Method Summary
 int cardsLeft()
          Obtain the number of cards left in the deck
 Card deal()
          Obtain the next card in the deck.
 Card dealCard()
          Obtain the next card in the deck.
 void extractCard(Card c)
          Remove a card from within the deck.
 void extractHand(Hand h)
          Remove all cards in the given hand from the Deck.
 Card extractRandomCard()
          Remove and return a randomly selected card from within the deck.
 int findCard(Card c)
          Find position of Card in Deck.
 Card getCard(int i)
          Obtain the card at a specific index in the deck.
 int getTopCardIndex()
          Obtain the position of the top card.
 Card pickRandomCard()
          Return a randomly selected card from within the deck without removing it.
 void replaceCard(Card c)
          Place a card back into the deck.
 void reset()
          Places all cards back into the deck.
 void shuffle()
          Shuffles the cards in the deck.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NUM_CARDS

public static final int NUM_CARDS
See Also:
Constant Field Values
Constructor Detail

Deck

public Deck()
Constructor.


Deck

public Deck(long seed)
Constructor w/ shuffle seed.

Parameters:
seed - the seed to use in randomly shuffling the deck.
Method Detail

reset

public void reset()
Places all cards back into the deck. Note: Does not sort the deck.


shuffle

public void shuffle()
Shuffles the cards in the deck.


deal

public Card deal()
Obtain the next card in the deck. If no cards remain, a null card is returned

Returns:
the card dealt

dealCard

public Card dealCard()
Obtain the next card in the deck. If no cards remain, a null card is returned

Returns:
the card dealt

findCard

public int findCard(Card c)
Find position of Card in Deck.


extractHand

public void extractHand(Hand h)
Remove all cards in the given hand from the Deck.


extractCard

public void extractCard(Card c)
Remove a card from within the deck.

Parameters:
c - the card to remove.

extractRandomCard

public Card extractRandomCard()
Remove and return a randomly selected card from within the deck.


pickRandomCard

public Card pickRandomCard()
Return a randomly selected card from within the deck without removing it.


replaceCard

public void replaceCard(Card c)
Place a card back into the deck.

Parameters:
c - the card to insert.

getTopCardIndex

public int getTopCardIndex()
Obtain the position of the top card. (the number of cards dealt from the deck)

Returns:
the top card index

cardsLeft

public int cardsLeft()
Obtain the number of cards left in the deck


getCard

public Card getCard(int i)
Obtain the card at a specific index in the deck. Does not matter if card has been dealt or not. If i < topCardIndex it has been dealt.

Parameters:
i - the index into the deck (0..51)
Returns:
the card at position i

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object