poker
Class Deck

java.lang.Object
  extended by poker.Deck

public class Deck
extends java.lang.Object

A Deck of 52 Cards which can be dealt and shuffled Some functions could be made much faster with some extra memory. I invite anyone to do so ;-)

Version:
1.0.5
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 a random card from 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.
 int findDiscard(Card c)
           
 Card getCard(int i)
          Obtain the card at a specific index in the deck.
 Card getTopCard()
          Get the first card in the deck
 int getTopCardIndex()
          Obtain the position of the top card.
 boolean inDeck(Card c)
          See if a card is in the deck, or if it has been dealt.
 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 setSeed(long seed)
           
 void shuffle()
          Places all cards back into the deck and then shuffles 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

setSeed

public void setSeed(long seed)

reset

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


shuffle

public void shuffle()
Places all cards back into the deck and then shuffles 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 a random card from 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.


findDiscard

public int findDiscard(Card c)

inDeck

public boolean inDeck(Card c)
See if a card is in the deck, or if it has been dealt.

Parameters:
c - a card
Returns:
true if it is still in the 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

getTopCard

public Card getTopCard()
Get the first card in the deck

Returns:
the first card in the deck (does not remove it).

cardsLeft

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


getCard

public final 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