diff options
author | Joe Zhao <ztuowen@gmail.com> | 2014-12-03 19:55:31 +0800 |
---|---|---|
committer | Joe Zhao <ztuowen@gmail.com> | 2014-12-03 19:55:31 +0800 |
commit | 6659427197a6036ff44ecf7e87e9e1b65d97d416 (patch) | |
tree | 06af211b7a472e4833030ff6dcfc610ed0c96c4a /aux/set/Set.java | |
parent | f4a4f8a8cbd6a6277eff2cf9eb7cc48c35e99474 (diff) | |
download | Mahjong-6659427197a6036ff44ecf7e87e9e1b65d97d416.tar.gz Mahjong-6659427197a6036ff44ecf7e87e9e1b65d97d416.tar.bz2 Mahjong-6659427197a6036ff44ecf7e87e9e1b65d97d416.zip |
Added new input method
Diffstat (limited to 'aux/set/Set.java')
-rw-r--r-- | aux/set/Set.java | 69 |
1 files changed, 68 insertions, 1 deletions
diff --git a/aux/set/Set.java b/aux/set/Set.java index d087955..be1cdca 100644 --- a/aux/set/Set.java +++ b/aux/set/Set.java @@ -23,10 +23,38 @@ public class Set { 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.getExId()-y.getExId()); + cards.sort((Card x,Card y) -> x.getId()-y.getId()); } public void add(Card in) { @@ -67,6 +95,45 @@ public class Set { return cards.size(); } + static char typeId2Char(int typeid) + { + switch (typeid) + { + case 0: + return 'm'; + case 1: + return 'p'; + case 2: + return 's'; + case 3: + return 'z'; + } + return ' '; + } + + @Override + public String toString() { + int typeid=-1; + String str=""; + sort(); + for (Card card:cards) { + if (typeid!=Math.min(3, card.getTypeId())) + { + if (typeid>=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) |