forked from prmr/DesignBook
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEnumeratedCard.java
More file actions
46 lines (41 loc) · 1.46 KB
/
EnumeratedCard.java
File metadata and controls
46 lines (41 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package chapter2;
public enum EnumeratedCard
{
ACE_CLUBS, TWO_CLUBS, THREE_CLUBS, FOUR_CLUBS, FIVE_CLUBS, SIX_CLUBS, SEVEN_CLUBS,
EIGHT_CLUBS, NINE_CLUBS, TEN_CLUBS, JACK_CLUBS, QUEEN_CLUBS, KING_CLUBS,
ACE_DIAMONDS, TWO_DIAMONDS, THREE_DIAMONDS, FOUR_DIAMONDS, FIVE_DIAMONDS, SIX_DIAMONDS, SEVEN_DIAMONDS,
EIGHT_DIAMONDS, NINE_DIAMONDS, TEN_DIAMONDS, JACK_DIAMONDS, QUEEN_DIAMONDS, KING_DIAMONDS,
ACE_SPADES, TWO_SPADES, THREE_SPADES, FOUR_SPADES, FIVE_SPADES, SIX_SPADES, SEVEN_SPADES,
EIGHT_SPADES, NINE_SPADES, TEN_SPADES, JACK_SPADES, QUEEN_SPADES, KING_SPADES,
ACE_HEARTS, TWO_HEARTS, THREE_HEARTS, FOUR_HEARTS, FIVE_HEARTS, SIX_HEARTS, SEVEN_HEARTS,
EIGHT_HEARTS, NINE_HEARTS, TEN_HEARTS, JACK_HEARTS, QUEEN_HEARTS, KING_HEARTS;
/**
* How to properly write automated tests such as this one
* is the topic of Chapter 5.
*/
public static void main(String[] args)
{
for( Rank rank : Rank.values() )
{
for( Suit suit : Suit.values() )
{
EnumeratedCard card = EnumeratedCard.get(rank, suit);
assert card.getRank() == rank;
assert card.getSuit() == suit;
System.out.println(card);
}
}
}
public Suit getSuit()
{
return Suit.values()[ordinal() / Rank.values().length];
}
public Rank getRank()
{
return Rank.values()[ordinal() % Rank.values().length];
}
public static EnumeratedCard get(Rank pRank, Suit pSuit)
{
return values()[13*pSuit.ordinal() + pRank.ordinal()];
}
}