From 134770f0cd68eaf0525e03bb6e6cfbd03153fdb7 Mon Sep 17 00:00:00 2001 From: Joe Zhao Date: Tue, 2 Dec 2014 21:40:36 +0800 Subject: Various UI Tested Read Card --- aux/Hand.java | 28 ---------------------- aux/set/Aside.java | 41 ++++++++++++++++++++++++++++++++ aux/set/CardSet.java | 50 ++++++++++++++++++++++++--------------- aux/set/Hand.java | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 136 insertions(+), 49 deletions(-) delete mode 100644 aux/Hand.java create mode 100644 aux/set/Aside.java (limited to 'aux') diff --git a/aux/Hand.java b/aux/Hand.java deleted file mode 100644 index ef8da6c..0000000 --- a/aux/Hand.java +++ /dev/null @@ -1,28 +0,0 @@ -package mahjong.aux; - -/** - * Created by joe on 12/1/14. - */ - -public class Hand { - static final int total = 13; - Card[] cards = new Card[13]; - - // Constructors - Hand(){} - Hand(String[] cardNames) - { - for (int i = 0; i>1; } - protected int getOrd(int id) + public static int getOrd(int id) { return id2OrdLut[std2Id(id)]; } @@ -68,24 +68,36 @@ public class CardSet { private int cnt=0; - public int calTing() + public int calTing(int mian) { //cnt=0; - int res=calTing(0,cardRem[0],0,0,0); + int res=calTing(0,cardRem[0],0,0,mian); //System.out.println(cnt); return res; } - private int nextCardOrd(int i) + public static int nextCardOrd(int i) { return getOrd(deckIds[i]+2); } - private int next2CardOrd(int i) + public static int next2CardOrd(int i) { return nextCardOrd(nextCardOrd(i)); } + public static int prevCardOrd(int i) + { + return getOrd(deckIds[i]-2); + } + + public static int prev2CardOrd(int i) + { + return prevCardOrd(prevCardOrd(i)); + } + + public int cardLeft(int ord){ return cardRem[ord]; } + private int calTing(int pos,int rems,int shoupai,int ting, int mian) { //++cnt; @@ -141,17 +153,17 @@ public class CardSet { return Math.min(6-shoupai,res); } - public Vector jinZhang() + public Vector jinZhang(int mian) { Vector cards = new Vector(); int res=0; - int ref=calTing(); + int ref=calTing(mian); for (int i=0;i ameliorate() + public Vector ameliorate(int mian) { Vector cards = new Vector(); int res=0; - int ref=calTing(); - int jinref=jinZhang().size(); + int ref=calTing(mian); + int jinref=jinZhang(mian).size(); for (int i=0;ijinref) { + if (calTing(mian)==ref) { + if (maxJinZhang(mian,ref)>jinref) { ++res; cards.add(card); //System.out.println(card.getNormalName()); @@ -183,15 +195,15 @@ public class CardSet { return cards; } - public int maxJinZhang(int xt) + public int maxJinZhang(int mian,int xt) { int res=0; for (int i=0;i0) { --cardRem[i]; - if (calTing()==xt) - res=Math.max(res,jinZhang().size()); + if (calTing(mian)==xt) + res=Math.max(res,jinZhang(mian).size()); ++cardRem[i]; } return res; diff --git a/aux/set/Hand.java b/aux/set/Hand.java index b715e54..cf5767e 100644 --- a/aux/set/Hand.java +++ b/aux/set/Hand.java @@ -2,10 +2,14 @@ package mahjong.aux.set; import mahjong.aux.Card; +import java.util.Vector; + /** * Created by joe on 12/1/14. */ public class Hand extends Set { + private CardSet accountant = new CardSet(0); + public Hand() { super(); @@ -19,8 +23,66 @@ public class Hand extends Set { super(cards); } - public Set[] generateEnds() + public Vector