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/set/Aside.java | 41 ++++++++++++++++++++++++++++++++ aux/set/CardSet.java | 50 ++++++++++++++++++++++++--------------- aux/set/Hand.java | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 136 insertions(+), 21 deletions(-) create mode 100644 aux/set/Aside.java (limited to 'aux/set') diff --git a/aux/set/Aside.java b/aux/set/Aside.java new file mode 100644 index 0000000..1503799 --- /dev/null +++ b/aux/set/Aside.java @@ -0,0 +1,41 @@ +package mahjong.aux.set; + +import mahjong.aux.Card; +import mahjong.player.GenericPlayer; + +/** + * Created by joe on 12/2/14. + */ +public class Aside { + public enum Type {Chi,Peng,aGang,mGang,jGang}; + + private Type type; + private Card rep; + private int from; + + public Aside(Card rep,Type type,int from) + { + this.rep=rep; + this.type=type; + this.from=from; + } + + public Aside(Card rep,Type type) + { + this.rep=rep; + this.type=type; + this.from= 0; + } + + public Card getRep() { + return rep; + } + + public int getFrom() { + return from; + } + + public Type getType() { + return type; + } +} diff --git a/aux/set/CardSet.java b/aux/set/CardSet.java index 8df6055..56a998d 100644 --- a/aux/set/CardSet.java +++ b/aux/set/CardSet.java @@ -15,9 +15,9 @@ public class CardSet { 36, 38, 40, 42, 44, 46, 48, 50, 52, 68, 70, 72, 74, 76, 78, 80, 82, 84, 100,106,112,118, - 132,138,144,146 + 132,138,144,148 }; - private static final int[] id2OrdLut = new int[] + public static final int[] id2OrdLut = new int[] { 34, 34, 0, 1, 2, 3, 4, 5, 6, 7, 8, 34, 34, 34, 34, 34, 34, 34, 9, 10, 11, 12, 13, 14, 15, 16, 17,34, 34, 34, 34, 34, @@ -49,11 +49,11 @@ public class CardSet { cardRem[getOrd(card.getStdId())]+=mult; } - protected int std2Id(int std) + public static int std2Id(int std) { return std>>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