public class Deck
extends java.lang.Object
enum Suit
{
SPADES, HEARTS, DIAMONDS, CLUBS
}
enum Rank
{
ACE, KING, QUEEN, JACK, TEN, NINE, EIGHT, SEVEN, SIX
}
sprites/clubs0.gif for Clubs-Ace, sprites/clubs1.gif for Clubs-King, etc. (all lowercase)
enum Sprites
{
A, B, C, D
}
sprites/a0.gif for Clubs-Ace, sprites/a1.gif for Clubs-King, etc. (all lowercase)
Card
Modifier and Type | Class and Description |
---|---|
static interface |
Deck.CardValues
Interface for the construction of integer arrays with card values (card points,
card values) of each card in each suit.
|
Modifier and Type | Field and Description |
---|---|
Card[][] |
cards
Public array of all cards in this deck in the order cards[suitId][rankId].
|
Constructor and Description |
---|
Deck(T[] suits,
R[] ranks,
S[] sprites,
java.lang.String cover)
Creates a deck from given suit and rank and sprites enumerations
with card values set to zero.
|
Deck(T[] suits,
R[] ranks,
S[] sprites,
java.lang.String cover,
Deck.CardValues cardValues)
Creates a deck from given suit and rank and sprites enumerations
with given card values.
|
Deck(T[] suits,
R[] ranks,
java.lang.String cover)
Creates a deck from given suit and rank enumerations with card values set to
zero using the values of the suits enumeration for the sprite names.
|
Deck(T[] suits,
R[] ranks,
java.lang.String cover,
Deck.CardValues cardValues)
Creates a deck from given suit and rank enumerations with given card values
using the values of the suits enumeration for the sprite names.
|
Modifier and Type | Method and Description |
---|---|
Hand[] |
dealingOut(int nbPlayers,
int nbCardsPerPlayer)
Same as dealingOut(nbPlayers, nbCardsPerPlayer, shuffle) with shuffle = true.
|
Hand[] |
dealingOut(int nbPlayers,
int nbCardsPerPlayer,
boolean shuffle)
Returns an array with nbPlayers + 1 hands.
|
static <T extends java.lang.Enum<T>> |
enumToStringArray(T[] values)
Returns the enumeration values as string array for the given enumeration.
|
java.awt.Dimension |
getCardDimension()
Returs the card dimensions of the card with suit and rank id zero.
|
<T extends java.lang.Enum<T>,R extends java.lang.Enum<R>> |
getCardNumber(T suit,
R rank)
Returns the card number of the card with given suit and rank.
|
int[] |
getCardValues(java.lang.Enum suit)
Returns an integer array of the card values in the given suit.
|
static double |
getHeapSize()
Returns the current memory heap size.
|
int |
getNumberOfCards()
Returns the total number of cards in this deck.
|
int |
getNumberOfRanks()
Returns the number of ranks in this deck.
|
int |
getNumberOfSuits()
Returns the number of suits in this deck.
|
java.lang.Enum |
getRank(int rankId)
Returns the rank corresponding the given rank id.
|
int |
getRankId(int cardNb)
Returns the rank id for the given card number.
|
<R extends java.lang.Enum<R>> |
getRankId(R rank)
Returns an integer id of the given rank (0: for rank with highest priority)
|
java.lang.String |
getRankName(int cardNb)
Returns the rank name as string for the given card number
The cards are numbered from 0 in the suit and rank priority order given when
the deck is created (the following numbering is used: all card from high
to low rank of the cards in the highest priority suit, in the next suit, etc.)
|
<T extends java.lang.Enum<T>,R extends java.lang.Enum<R>> |
getSeedActor(T suit,
R rank)
Returns the JGameGrid actor attributed to the card with the specified
suit and rank.
|
java.lang.Enum |
getSuit(int suitId)
Returns the suit corresponding the given suit id.
|
int |
getSuitId(int cardNb)
Returns the suit id for the card with the given card number.
|
<T extends java.lang.Enum<T>> |
getSuitId(T suit)
Returns an integer id of the given suit (0: for suit with highest priority)
|
java.lang.String |
getSuitName(int cardNb)
Returns the suit name as string for the card with the given card number.
|
static void |
showHeapSize()
Displays the current memory heap size in System.out.
|
Hand |
toHand()
Returns the complete shuffled deck as a hand.
|
Hand |
toHand(boolean shuffle)
Returns the complete deck as a hand.
|
public Card[][] cards
public Deck(T[] suits, R[] ranks, java.lang.String cover)
T
- the Enum type of the suitR
- the Enum type of the ranksuits
- an array of suitsranks
- an array of rankscover
- the partial filename of the card cover sprite image. The file
must reside in the sprites subdirectory and have the extension .gifpublic Deck(T[] suits, R[] ranks, java.lang.String cover, Deck.CardValues cardValues)
T
- the Enum type of the suitR
- the Enum type of the ranksuits
- an array of suitsranks
- an array of rankscover
- the partial filename of the card cover sprite image. The file
must reside in the sprites subdirectory and have the extension .gifcardValues
- the integer array of card values for each suit; if null
is passed, all card values are set to zeropublic Deck(T[] suits, R[] ranks, S[] sprites, java.lang.String cover)
T
- the Enum type of the suitR
- the Enum type of the rankS
- the Enum type of the spritessuits
- an array of suitsranks
- an array of rankssprites
- an array of sprites; if null is passed, the suits values are
used for creating the filenamescover
- the partial filename of the card cover sprite image. The file
must reside in the sprites subdirectory and have the extension .gifpublic Deck(T[] suits, R[] ranks, S[] sprites, java.lang.String cover, Deck.CardValues cardValues)
T
- the Enum type of the suitR
- the Enum type of the rankS
- the Enum type of the spritessuits
- an array of suitsranks
- an array of rankssprites
- an array of sprites; if null is passed, the suits values are
used for creating the filenamescover
- the partial filename of the card cover sprite image. The file
must reside in the sprites subdirectory and have the extension .gifcardValues
- the integer array of card values for each suit; if null
is passed, all card values are set to zeropublic <T extends java.lang.Enum<T>,R extends java.lang.Enum<R>> Actor getSeedActor(T suit, R rank)
suit
- the suit of the cardrank
- the rank of the cardpublic <T extends java.lang.Enum<T>> int getSuitId(T suit)
T
- the type of the suitsuit
- the requested suitpublic java.lang.Enum getSuit(int suitId)
suitId
- the id of the suit in the order the suit enum is defined.public <R extends java.lang.Enum<R>> int getRankId(R rank)
R
- the type of the suitrank
- the requested rankpublic java.lang.Enum getRank(int rankId)
rankId
- the id of the rank in the order the rank enum is defined.public int getSuitId(int cardNb)
cardNb
- the card numberpublic java.lang.String getSuitName(int cardNb)
cardNb
- the card numberpublic int getRankId(int cardNb)
cardNb
- the card numberpublic java.lang.String getRankName(int cardNb)
cardNb
- the card numberpublic java.awt.Dimension getCardDimension()
public Hand toHand()
public Hand toHand(boolean shuffle)
shuffle
- if true, the cards are shuffle; otherwise they are ordered
by rank and then by suitpublic Hand[] dealingOut(int nbPlayers, int nbCardsPerPlayer)
nbPlayers
- the number of playersnbCardsPerPlayer
- the number of cards for each playerpublic Hand[] dealingOut(int nbPlayers, int nbCardsPerPlayer, boolean shuffle)
nbPlayers
- the number of playersnbCardsPerPlayer
- the number of cards for each playershuffle
- if true, the cards are shuffled; otherwise they are ordered
by rank and then by suitpublic int[] getCardValues(java.lang.Enum suit)
suit
- the suit from where to get the card valuespublic static <T extends java.lang.Enum<T>> java.lang.String[] enumToStringArray(T[] values)
T
- the enumeration typevalues
- the values of the given enumerationpublic int getNumberOfSuits()
public int getNumberOfRanks()
public int getNumberOfCards()
public <T extends java.lang.Enum<T>,R extends java.lang.Enum<R>> int getCardNumber(T suit, R rank)
suit
- the suit of the cardrank
- the rank of the cardpublic static double getHeapSize()
public static void showHeapSize()