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 --- Main.java | 5 ++- aux/Hand.java | 28 ----------------- aux/set/Aside.java | 41 ++++++++++++++++++++++++ aux/set/CardSet.java | 50 ++++++++++++++++++----------- aux/set/Hand.java | 66 ++++++++++++++++++++++++++++++++++++-- engine/Engine.java | 18 +++++++++++ player/GenericPlayer.java | 33 +++++++++++++++++++ player/ai/Values.java | 25 +++++++++++++++ player/human/LocalHuman.java | 75 ++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 291 insertions(+), 50 deletions(-) delete mode 100644 aux/Hand.java create mode 100644 aux/set/Aside.java create mode 100644 engine/Engine.java create mode 100644 player/GenericPlayer.java create mode 100644 player/ai/Values.java create mode 100644 player/human/LocalHuman.java diff --git a/Main.java b/Main.java index 6319ea6..e9cd950 100644 --- a/Main.java +++ b/Main.java @@ -2,6 +2,7 @@ package mahjong; import mahjong.aux.set.CardSet; import mahjong.aux.set.Set; +import mahjong.player.human.LocalHuman; import mahjong.tools.Timer; public class Main { @@ -32,8 +33,10 @@ public class Main { cardSet.add(hand,1); Timer timer=new Timer(); timer.tick(); - System.out.println(cardSet.ameliorate().size()); + System.out.println(cardSet.ameliorate(0).size()); timer.tock(); System.out.println(timer.elapse()); + + LocalHuman local=new LocalHuman("Joe"); } } 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