summaryrefslogtreecommitdiff
path: root/aux/set/Set.java
diff options
context:
space:
mode:
authorJoe Zhao <ztuowen@gmail.com>2014-12-02 18:57:51 +0800
committerJoe Zhao <ztuowen@gmail.com>2014-12-02 18:57:51 +0800
commit83122b34976d012fc5524152b170adcfef7eef60 (patch)
tree16f06b9bdf30b41bfcf3e33772248c4d3b548fcc /aux/set/Set.java
downloadMahjong-83122b34976d012fc5524152b170adcfef7eef60.tar.gz
Mahjong-83122b34976d012fc5524152b170adcfef7eef60.tar.bz2
Mahjong-83122b34976d012fc5524152b170adcfef7eef60.zip
First commit
Diffstat (limited to 'aux/set/Set.java')
-rw-r--r--aux/set/Set.java75
1 files changed, 75 insertions, 0 deletions
diff --git a/aux/set/Set.java b/aux/set/Set.java
new file mode 100644
index 0000000..d087955
--- /dev/null
+++ b/aux/set/Set.java
@@ -0,0 +1,75 @@
+package mahjong.aux.set;
+
+import mahjong.aux.Card;
+
+import java.util.Random;
+import java.util.Vector;
+
+/**
+ * Created by joe on 12/1/14.
+ */
+public class Set {
+ static protected final Random rand = new Random();
+ protected Vector<Card> cards = new Vector<Card>();
+
+ public Set(){}
+ public Set(String[] cardNames)
+ {
+ for (String name:cardNames)
+ add(new Card(name));
+ }
+ public Set(Card[] cards)
+ {
+ for (Card card:cards)
+ add(card);
+ }
+
+ public void sort()
+ {
+ cards.sort((Card x,Card y) -> x.getExId()-y.getExId());
+ }
+ public void add(Card in)
+ {
+ cards.add(in);
+ }
+ public void remove(Card out)
+ {
+ for (int i=0; i<cards.size();++i)
+ if (cards.elementAt(i).getId() == out.getId())
+ {
+ cards.remove(i);
+ break;
+ }
+ }
+ public void replace(Card out, Card in)
+ {
+ remove(out);
+ add(in);
+ }
+ public Card draw()
+ {
+ int ord = rand.nextInt(getSize());
+ Card card = cards.elementAt(ord);
+ remove(card);
+ return card;
+ }
+
+ public Object[] getCards()
+ {
+ return cards.toArray();
+ }
+ public String getTypeName()
+ {
+ return "Misc";
+ }
+ public int getSize()
+ {
+ return cards.size();
+ }
+
+ public void print()
+ {
+ for (Card card:cards)
+ System.out.println(card.getNormalName());
+ }
+}