-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathSuit.java
61 lines (46 loc) · 1.37 KB
/
Suit.java
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
47
48
49
50
51
52
53
54
55
56
57
package blackjack.card;
import java.util.List;
import java.util.Collections;
import java.util.Arrays;
public class Suit implements Comparable<Suit>{
public static final Suit SPADE = new Suit("SPADE", "♠");
public static final Suit HEART = new Suit("HEART", "♡");
public static final Suit DIAMOND = new Suit("DIAMOND", "♢");
public static final Suit CLUB = new Suit("CLUB", "♣");
private static final List<Suit> VALUES =
Collections.unmodifiableList(
Arrays.asList(SPADE, HEART, DIAMOND, CLUB)
);
private final String name;
private final String symbol;
private Suit(String name, String symbol){
this.name = name;
this.symbol = symbol;
}
public String getSymbol(){
return symbol;
}
@Override
public int compareTo(Suit t){
return Integer.valueOf(this.ordinal()).compareTo(t.ordinal());
}
public String name(){
return name;
}
public int ordinal(){
return VALUES.indexOf(this);
}
@Override
public String toString(){
return name();
}
public static Suit valueOf(String name){
for(Suit value : VALUES){
if(value.name.equals(name)) return value;
}
throw new IllegalArgumentException();
}
public static List<Suit> values() {
return VALUES;
}
}