From 6659427197a6036ff44ecf7e87e9e1b65d97d416 Mon Sep 17 00:00:00 2001 From: Joe Zhao Date: Wed, 3 Dec 2014 19:55:31 +0800 Subject: Added new input method --- aux/set/Set.java | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) (limited to 'aux/set') 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) -- cgit v1.2.3-70-g09d2