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 | |
| parent | f4a4f8a8cbd6a6277eff2cf9eb7cc48c35e99474 (diff) | |
| download | Mahjong-6659427197a6036ff44ecf7e87e9e1b65d97d416.tar.gz Mahjong-6659427197a6036ff44ecf7e87e9e1b65d97d416.tar.bz2 Mahjong-6659427197a6036ff44ecf7e87e9e1b65d97d416.zip  | |
Added new input method
Diffstat (limited to 'aux/set')
| -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)  | 
