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 cards = new Vector(); 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 Set(String str) { int typeid=0; for (int i=str.length()-1;i>=0;--i) { if (!Character.isDigit(str.charAt(i))) switch (Character.toUpperCase(str.charAt(i))) { case 'M': typeid=0; break; case 'P': typeid=1; break; case 'S': typeid=2; break; case 'Z': typeid=3; break; } else { int posid=str.charAt(i)-48; add(new Card(Card.idLut[typeid][posid])); } } } public void sort() { cards.sort((Card x,Card y) -> x.getId()-y.getId()); } public void add(Card in) { cards.add(in); } public void remove(Card out) { for (int i=0; i=0) str=str.concat(Character.toString(typeId2Char(typeid))); } typeid=Math.min(3, card.getTypeId()); int i=0; for (int j=0;j<10;++j) if (Card.idLut[typeid][j]==card.getId()) i=j; str=str.concat(Integer.toString(i)); } if (typeid>=0) str=str.concat(Character.toString(typeId2Char(typeid))); return str; } public void print() { for (Card card:cards) System.out.println(card.getNormalName()); } }