]> wirehaze git hosting - solitaire.git/blob - src/solitaire/Deck.java

wirehaze git hosting

add deck and format
[solitaire.git] / src / solitaire / Deck.java
1 package solitaire;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.List;
6
7 final class Deck {
8 private static final Suit[] suits = Suit.values();
9 private static final Rank[] ranks = Rank.values();
10
11 private final List<Card> cards;
12
13 Deck() {
14 this.cards = new ArrayList<>(suits.length * ranks.length);
15
16 for (Suit s : suits)
17 for (Rank r : ranks)
18 cards.add(new Card(s, r));
19 }
20
21 void shuffle() {
22 Collections.shuffle(cards);
23 }
24
25 Card draw() {
26 return cards.removeLast();
27 }
28
29 boolean isEmpty() {
30 return cards.isEmpty();
31 }
32
33 @Override
34 public String toString() {
35 if (isEmpty())
36 return "{ }";
37
38 return "{ * }";
39 }
40 }