diff --git a/game_zp_fangpaofa/src/main/java/extend/zp/EXPlayer.java b/game_zp_fangpaofa/src/main/java/extend/zp/EXPlayer.java index 12c65ee..341a8f2 100644 --- a/game_zp_fangpaofa/src/main/java/extend/zp/EXPlayer.java +++ b/game_zp_fangpaofa/src/main/java/extend/zp/EXPlayer.java @@ -302,7 +302,7 @@ public class EXPlayer extends Player { for (int i = 0; i < list.size(); ++i) { ITObject obj = list.getTObject(i); ITArray opCard = obj.getTArray("opcard"); - Tip tip = new Tip(eventCard, opCard, weight, rule, RuleWeight.TYPE_CHOW); + Tip tip = new Tip(eventCard, opCard, weight, rule, RuleWeight.TYPE_CHOW_OTHER); tip.bi_list = obj.getTArray("bi_list"); this.tipMgr.addTip(tip); } diff --git a/game_zp_fangpaofa/src/main/java/extend/zp/EXRoom.java b/game_zp_fangpaofa/src/main/java/extend/zp/EXRoom.java index ed0c4a1..978edb8 100644 --- a/game_zp_fangpaofa/src/main/java/extend/zp/EXRoom.java +++ b/game_zp_fangpaofa/src/main/java/extend/zp/EXRoom.java @@ -423,7 +423,7 @@ public class EXRoom extends Room { huXi += opCard.huXi; huXiNum++; } - if (opCard.type == RuleWeight.TYPE_CHOW) { + if (opCard.type == RuleWeight.TYPE_CHOW || opCard.type == RuleWeight.TYPE_CHOW_OTHER) { if (CardUtil.isRedCard(opCard.card1)) { redCard++; @@ -529,6 +529,7 @@ public class EXRoom extends Room { } // 红胡 +// logger.info("红胡redCard:" + redCard); if (redCard >= 10 && redCard < 13) { player.winFan = player.winFan * 2; player.mingtangList.add(new MingTang(RuleWeight.HONG_HU, 2, 2)); @@ -697,7 +698,7 @@ public class EXRoom extends Room { kuaibiannum++; } } - if (tmpopcard.type == RuleWeight.TYPE_CHOW) { + if (tmpopcard.type == RuleWeight.TYPE_CHOW || tmpopcard.type == RuleWeight.TYPE_CHOW_OTHER) { if (CardUtil.isRedCard(tmpopcard.card1)) { redCard++; } @@ -756,6 +757,7 @@ public class EXRoom extends Room { } // 红胡 +// logger.info("红胡redCard11111111:"+redCard); if (redCard >= 10 && redCard < 13) { player.winFan = player.winFan * 2; tmpmt.add(new MingTang(RuleWeight.HONG_HU, 2, 2)); @@ -889,9 +891,7 @@ public class EXRoom extends Room { paoGroup[1] = activePlayer.drawCard; paoGroup[2] = activePlayer.drawCard; paoGroup[3] = activePlayer.drawCard; - player.paoGroup.add(paoGroup); - huXi = Paixing.caclHuxi(RuleWeight.TYPE_PAO, activePlayer.drawCard); player.opCardList.add(new OpCard(RuleWeight.TYPE_PAO, activePlayer.drawCard, activePlayer.drawCard, activePlayer.drawCard, huXi)); @@ -902,12 +902,16 @@ public class EXRoom extends Room { OpCard opcard = new OpCard(); opcard.card1 = win.stack.get(j).get(0); opcard.card2 = win.stack.get(j).get(1); - opcard.type = 1; + opcard.type = 14; if (win.stack.get(j).size() > 2) { opcard.card3 = win.stack.get(j).get(2); if (opcard.card1 == opcard.card2 && opcard.card1 == opcard.card3 && opcard.card3 == opcard.card2) { opcard.type = 2; + } else if (opcard.card1 == opcard.card2 + && opcard.card3 == 0) { + opcard.type = RuleWeight.TYPE_JIANG; + } } opcard.huXi = win.stackHuxi.get(j); @@ -935,6 +939,8 @@ public class EXRoom extends Room { pongGroup[2] = activePlayer.drawCard; player.pongGroup.add(pongGroup); + logger.info("来到这里增加了pong的类型" + activePlayer.drawCard); + logger.info("来到这里增加了pong的类型" + pongGroup); huXi = Paixing.caclHuxi(RuleWeight.TYPE_PONG, activePlayer.drawCard); player.opCardList.add(new OpCard(RuleWeight.TYPE_PONG, activePlayer.drawCard, @@ -990,12 +996,16 @@ public class EXRoom extends Room { OpCard opcard = new OpCard(); opcard.card1 = win.stack.get(j).get(0); opcard.card2 = win.stack.get(j).get(1); - opcard.type = 1; + opcard.type = 14; if (win.stack.get(j).size() > 2) { opcard.card3 = win.stack.get(j).get(2); if (opcard.card1 == opcard.card2 && opcard.card1 == opcard.card3 && opcard.card3 == opcard.card2) { opcard.type = 2; + } else if (opcard.card1 == opcard.card2 + && opcard.card3 == 0) { + opcard.type = RuleWeight.TYPE_JIANG; + } } opcard.huXi = win.stackHuxi.get(j); @@ -1077,12 +1087,15 @@ public class EXRoom extends Room { OpCard opcard = new OpCard(); opcard.card1 = win.stack.get(j).get(0); opcard.card2 = win.stack.get(j).get(1); - opcard.type = 1; + opcard.type = 14; if (win.stack.get(j).size() > 2) { opcard.card3 = win.stack.get(j).get(2); if (opcard.card1 == opcard.card2 && opcard.card1 == opcard.card3 && opcard.card3 == opcard.card2) { opcard.type = 2; + } else if (opcard.card1 == opcard.card2 + && opcard.card3 == 0) { + opcard.type = RuleWeight.TYPE_JIANG; } } opcard.huXi = win.stackHuxi.get(j); @@ -1139,22 +1152,32 @@ public class EXRoom extends Room { scoreSrc = caclScore(player); // System.out.println("scoreSrc:"+scoreSrc); - // 用于标识一块扁 +// // 用于标识一块扁 int scoreSrcnew = caclScoreNew(player, checkpaoflag ? 0 : (this.activeCard == 0 ? activePlayer.drawCard : this.activeCard), false); - if (scoreSrcnew == 0) { - scoreSrcnew = caclScoreNew(player, - checkpaoflag ? 0 : (this.activeCard == 0 ? activePlayer.drawCard : this.activeCard), true); - } - if (scoreSrcnew < scoreSrc || scoreSrcnew < 15) { - scoreSrcnew = caclScoreNew(player, - !checkpaoflag ? 0 : (this.activeCard == 0 ? activePlayer.drawCard : this.activeCard), false); - if (scoreSrcnew == 0) { - scoreSrcnew = caclScoreNew(player, - !checkpaoflag ? 0 : (this.activeCard == 0 ? activePlayer.drawCard : this.activeCard), true); - } - } - +// logger.info("11111111111111"); +// logger.info("scoreSrcnew:" + scoreSrcnew); +// +// if (scoreSrcnew == 0) { +// scoreSrcnew = caclScoreNew(player, +// checkpaoflag ? 0 : (this.activeCard == 0 ? activePlayer.drawCard : this.activeCard), true); +// } +// logger.info("2222222222222"); +// +// logger.info("scoreSrcnew:" + scoreSrcnew); +// logger.info("scoreSrc:" + scoreSrc); +// logger.info("checkpaoflag:" + checkpaoflag); +// +// if (scoreSrcnew < scoreSrc || scoreSrcnew < 15) { +// scoreSrcnew = caclScoreNew(player, +// !checkpaoflag ? 0 : (this.activeCard == 0 ? activePlayer.drawCard : this.activeCard), false); +// if (scoreSrcnew == 0) { +// scoreSrcnew = caclScoreNew(player, +// !checkpaoflag ? 0 : (this.activeCard == 0 ? activePlayer.drawCard : this.activeCard), true); +// } +// } +// logger.info("3333333333333333333"); +// if (scoreSrcnew >= 15) { player.newcalc = 1; @@ -1175,6 +1198,7 @@ public class EXRoom extends Room { player.cardInhand.clear(); } else { for (OpCard opCard : player.handCard) { + logger.info("增加类型:" + opCard.type + "-" + opCard.card1 + "--" + opCard.card2 + "--" + opCard.card3); player.opCardList.add(opCard); } } diff --git a/game_zp_fangpaofa/src/main/java/extend/zp/RoomCard.java b/game_zp_fangpaofa/src/main/java/extend/zp/RoomCard.java index 37b5e92..9a96d3e 100644 --- a/game_zp_fangpaofa/src/main/java/extend/zp/RoomCard.java +++ b/game_zp_fangpaofa/src/main/java/extend/zp/RoomCard.java @@ -5,11 +5,15 @@ import java.util.*; import com.taurus.core.entity.ITArray; import com.taurus.core.entity.TObject; import com.taurus.core.plugin.redis.Redis; +import com.taurus.core.util.Logger; +import extend.zp.player.rulestate.PRChi; import extend.zp.uitl.CardUtil; import redis.clients.jedis.Jedis; public class RoomCard { + public static final Logger logger = Logger.getLogger(RoomCard.class); + public ArrayList cardList; EXRoom room; public ArrayList subCardList; @@ -22,8 +26,8 @@ public class RoomCard { } public void init() { - this.cardList.clear(); - this.subCardList.clear(); +// this.cardList.clear(); +// this.subCardList.clear(); // this.sanlong(); this.initCard(); @@ -60,10 +64,19 @@ public class RoomCard { public void sanlong() { + List list2 = Arrays.asList(102, 103, 105, 106, 107, 107, 108, 109, 201, 202, 203, 203, 206, 206, 207, 208, 208, 208, 209, 210); + List list = Arrays.asList(101, 101, 104, 104, 109, 109, 110, 110, 110, 201, 201, 202, 203, 204, 204, 205, 205, 207, 208, 210); + List list3 = Arrays.asList(209, 205, 109, 104, 202, 204, 201, 206, 101, 105, 106, 101, 203, 210, 205, 102, 103, 204, 206, 207); + + +// List list2 = Arrays.asList(101, 102, 102, 104, 104, 105, 106, 106, 108, 201, 203, 204, 204, 205, 208, 208, 209, 209, 210, 210); +// List list = Arrays.asList(102, 103, 104, 105, 107, 110, 202, 202, 202, 202, 203, 203, 205, 205, 206, 206, 206, 208, 209, 210); +// List list3 = Arrays.asList(106, 103, 205, 102, 104, 110, 207, 106, 107, 201, 108, 201, 206, 110, 103, 103, 110, 101, 105, 108); + // //不够胡息 - List list2 = Arrays.asList(101, 102, 103, 104, 105, 105, 107, 108, 108, 109, 204, 204, 205, 205, 205, 206, 206, 207, 209, 210); - List list = Arrays.asList(101, 102, 103, 104, 105, 108, 109, 109, 201, 202, 203, 203, 203, 204, 206, 207, 207, 208, 208, 209); - List list3 = Arrays.asList(102, 107, 204, 209, 208, 107, 110, 103, 106, 205, 105, 207, 210, 108, 103, 201, 110, 110, 104, 202); +// List list2 = Arrays.asList(101, 102, 103, 104, 105, 105, 107, 108, 108, 109, 204, 204, 205, 205, 205, 206, 206, 207, 209, 210); +// List list = Arrays.asList(101, 102, 103, 104, 105, 108, 109, 109, 201, 202, 203, 203, 203, 204, 206, 207, 207, 208, 208, 209); +// List list3 = Arrays.asList(102, 107, 204, 209, 208, 107, 110, 103, 106, 205, 105, 207, 210, 108, 103, 201, 110, 110, 104, 202); // List list2 = Arrays.asList(101, 103, 103, 105, 106, 108, 109, 109, 110, 201, 202, 203, 204, 204, 205, 205, 208, 208, 210, 210); // List list = Arrays.asList(101, 102, 103, 104, 104, 104, 105, 105, 107, 107, 107, 107, 108, 110, 201, 202, 207, 209, 210, 210); @@ -538,6 +551,7 @@ public class RoomCard { } private void initCard() { + this.cardList.clear(); for (int index = 1; index <= 10; index++) { for (int index2 = 0; index2 < 4; index2++) { this.cardList.add(100 + index); @@ -599,8 +613,8 @@ public class RoomCard { for (int index = 0; index < 20; index++) { int tmpcard = this.pop(); if (this.checksanlong(dealCards, tmpcard)) { - this.cardList.add(tmpcard); + this.shuffle(); int tmpcard1 = this.pop(); if (this.checksanlong(dealCards, tmpcard1)) { diff --git a/game_zp_fangpaofa/src/main/java/extend/zp/RuleWeight.java b/game_zp_fangpaofa/src/main/java/extend/zp/RuleWeight.java index 08c6df4..40a105a 100644 --- a/game_zp_fangpaofa/src/main/java/extend/zp/RuleWeight.java +++ b/game_zp_fangpaofa/src/main/java/extend/zp/RuleWeight.java @@ -12,7 +12,7 @@ public class RuleWeight { public final static int PAO = 8; - public final static int TYPE_CHOW = 1; + public final static int TYPE_CHOW = 14; public final static int TYPE_PONG = 2; public final static int TYPE_KAN = 3; public final static int TYPE_WEI = 4; @@ -29,6 +29,7 @@ public class RuleWeight { public final static int TYPE_PINGHU = 13;//平胡 + public final static int TYPE_CHOW_OTHER = 1; public final static int SMALL_CARD = 1; public final static int BIG_CARD = 2; diff --git a/game_zp_fangpaofa/src/main/java/extend/zp/player/rulestate/PRChi.java b/game_zp_fangpaofa/src/main/java/extend/zp/player/rulestate/PRChi.java index 5263030..4f67ec0 100644 --- a/game_zp_fangpaofa/src/main/java/extend/zp/player/rulestate/PRChi.java +++ b/game_zp_fangpaofa/src/main/java/extend/zp/player/rulestate/PRChi.java @@ -57,14 +57,14 @@ public class PRChi { int huXi = 0; if (chiGroup[0] % 100 != chiGroup[1] % 100) { if (chiGroup[0] % 100 + chiGroup[1] % 100 + chiGroup[2] % 100 == 6 || chiGroup[0] % 100 + chiGroup[1] % 100 + chiGroup[2] % 100 == 19) { - huXi += Paixing.caclHuxi(RuleWeight.TYPE_CHOW, chiGroup[0]); + huXi += Paixing.caclHuxi(RuleWeight.TYPE_CHOW_OTHER, chiGroup[0]); } } - player.opCardList.add(new OpCard(RuleWeight.TYPE_CHOW, chiGroup[0], chiGroup[1], chiGroup[2], huXi)); + player.opCardList.add(new OpCard(RuleWeight.TYPE_CHOW_OTHER, chiGroup[0], chiGroup[1], chiGroup[2], huXi)); ITArray opcard = TArray.newInstance(); opcard.addInt(chiGroup[0]); opcard.addInt(chiGroup[2]); - EXMainServer.gameCtr.actionCard(player, card, card, bi ? RuleWeight.TYPE_BI : RuleWeight.TYPE_CHOW, activePlayer.seat, opcard); + EXMainServer.gameCtr.actionCard(player, card, card, bi ? RuleWeight.TYPE_BI : RuleWeight.TYPE_CHOW_OTHER, activePlayer.seat, opcard); } } diff --git a/game_zp_fangpaofa/src/main/java/extend/zp/player/rulestate/PRWeiState.java b/game_zp_fangpaofa/src/main/java/extend/zp/player/rulestate/PRWeiState.java index b614e0f..dbdccbd 100644 --- a/game_zp_fangpaofa/src/main/java/extend/zp/player/rulestate/PRWeiState.java +++ b/game_zp_fangpaofa/src/main/java/extend/zp/player/rulestate/PRWeiState.java @@ -53,7 +53,6 @@ public class PRWeiState extends StateBase { opcard.addInt(card); opcard.addInt(card); - owner.getRoom().activeCard=0; EXMainServer.gameCtr.actionCard(owner, card, card, type, owner.seat, opcard); EXMainServer.playerRuleMgr.condition(PlayerRuleManager.HU_RULE, owner); } diff --git a/game_zp_fangpaofa/src/main/java/extend/zp/tip/TipManager.java b/game_zp_fangpaofa/src/main/java/extend/zp/tip/TipManager.java index ce0328a..2e4e8c1 100644 --- a/game_zp_fangpaofa/src/main/java/extend/zp/tip/TipManager.java +++ b/game_zp_fangpaofa/src/main/java/extend/zp/tip/TipManager.java @@ -53,7 +53,7 @@ public class TipManager { Map.Entry entry = it.next(); Tip tip = entry.getValue(); card = tip.card; - if (tip.type == RuleWeight.TYPE_CHOW) { + if (tip.type == RuleWeight.TYPE_CHOW_OTHER) { this.owner.chouChiSet.add(tip.card); } if (tip.type == RuleWeight.TYPE_PONG) { @@ -77,7 +77,7 @@ public class TipManager { Tip tip = this.tipMap.get(id); this.tipMap.remove(id); - if (tip.type == RuleWeight.TYPE_CHOW) { + if (tip.type == RuleWeight.TYPE_CHOW_OTHER) { tip.biid = biid; Iterator> it = this.tipMap.entrySet().iterator(); while (it.hasNext()) { @@ -85,7 +85,7 @@ public class TipManager { if (entry.getValue().type == RuleWeight.TYPE_PONG) { this.owner.chouPongSet.add(tip.card); } - if (entry.getValue().type != RuleWeight.TYPE_CHOW && entry.getValue().type != RuleWeight.TYPE_BI) { + if (entry.getValue().type != RuleWeight.TYPE_CHOW_OTHER && entry.getValue().type != RuleWeight.TYPE_BI) { it.remove(); } } @@ -171,7 +171,7 @@ public class TipManager { Map.Entry entry = it.next(); Tip tip = entry.getValue(); card = tip.card; - if (tip.type == RuleWeight.TYPE_CHOW) { + if (tip.type == RuleWeight.TYPE_CHOW_OTHER) { this.owner.chouChiSet.add(tip.card); } @@ -187,12 +187,12 @@ public class TipManager { Tip tip = this.tipMap.get(id); this.tipMap.remove(id); - if (tip.type == RuleWeight.TYPE_CHOW) { + if (tip.type == RuleWeight.TYPE_CHOW_OTHER) { tip.biid = biid; Iterator> it = this.tipMap.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = it.next(); - if (entry.getValue().type != RuleWeight.TYPE_CHOW && entry.getValue().type != RuleWeight.TYPE_BI) { + if (entry.getValue().type != RuleWeight.TYPE_CHOW_OTHER && entry.getValue().type != RuleWeight.TYPE_BI) { it.remove(); } } diff --git a/game_zp_fangpaofa/src/main/java/extend/zp/uitl/Paixing.java b/game_zp_fangpaofa/src/main/java/extend/zp/uitl/Paixing.java index 203ed73..cfa7423 100644 --- a/game_zp_fangpaofa/src/main/java/extend/zp/uitl/Paixing.java +++ b/game_zp_fangpaofa/src/main/java/extend/zp/uitl/Paixing.java @@ -30,6 +30,10 @@ public class Paixing { // logger.info("当前胡息:"+player.huXi+",最后胡牌胡息:"+lastHuxi); // } // logger.info("当前行动的牌:" + room.activeCard); +// logger.info("用户的牌:" + player.cardInhand); +// if(room.activeCard!=0) { +// player.cardInhand.add(room.activeCard); +// } // 原始算法计算 boolean canWin = win.tryWin(player); if (canWin && !isWin) { @@ -41,13 +45,6 @@ public class Paixing { if (!isWin) { player.resetHuXi(); - /* - * if (player.getRoom().isTianHu) { if (player.tiCount >= 3) { player.isMingTang - * = false; isWin = true; } if (player.kanGroup.size() >= 5) { player.isMingTang - * = false; isWin = true; } if (player.tiCount >= 1 && player.kanGroup.size() >= - * 4) { player.isMingTang = false; isWin = true; } if (player.tiCount >= 2 && - * player.kanGroup.size() >= 3) { player.isMingTang = false; isWin = true; } } - */ for (int i = 0; i < player.pongGroup.size(); i++) { if (drawCard == player.pongGroup.get(i)[0] && !player.getRoom().paochucardlist.contains(drawCard)) { @@ -107,8 +104,24 @@ public class Paixing { opcard.card2 = win.stack.get(i).get(1); opcard.type = 1; if (win.stack.get(i).size() > 2) { + opcard.card3 = win.stack.get(i).get(2); - opcard.type = 2; + if (opcard.card1 == opcard.card2 && opcard.card1 == opcard.card3) { + // 3张牌都一样则是碰 + opcard.type = 2; + } else if (win.stack.get(i).get(2) == 0) { + // 2张牌一样则是将 + opcard.type = RuleWeight.TYPE_JIANG; + } else { + // 否则则是吃 +// logger.info("第一张牌"+win.stack.get(i).get(0)); +// logger.info("第二张牌"+win.stack.get(i).get(1)); +// logger.info("第三张牌"+win.stack.get(i).get(2)); + + opcard.type = RuleWeight.TYPE_CHOW; + } + } else if (win.stack.get(i).size() == 2) { + opcard.type = RuleWeight.TYPE_JIANG; } opcard.huXi = win.stackHuxi.get(i); @@ -150,6 +163,14 @@ public class Paixing { huXi = 6; } break; + case RuleWeight.TYPE_CHOW_OTHER: + if (cardType == RuleWeight.SMALL_CARD) { + huXi = 3; + } else { + huXi = 6; + } + break; + case RuleWeight.TYPE_PONG: if (cardType == RuleWeight.SMALL_CARD) { huXi = 1; diff --git a/game_zp_fangpaofa/src/main/java/extend/zp/uitl/WinCardNew.java b/game_zp_fangpaofa/src/main/java/extend/zp/uitl/WinCardNew.java index 427676b..ae5cedf 100644 --- a/game_zp_fangpaofa/src/main/java/extend/zp/uitl/WinCardNew.java +++ b/game_zp_fangpaofa/src/main/java/extend/zp/uitl/WinCardNew.java @@ -1,12 +1,20 @@ package extend.zp.uitl; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Stack; + +import com.taurus.core.util.Logger; import extend.zp.OpCard; import extend.zp.RuleWeight; public class WinCardNew { + public static final Logger logger = Logger.getLogger(WinCardNew.class); + private boolean isJiang = false; private List cardList; private Stack>> opCardStack; @@ -324,6 +332,7 @@ public class WinCardNew { List tempList = new ArrayList<>(); List opCardList = new ArrayList<>(); tempList.addAll(cardList); + if (CardUtil.cardNum(card, cardList) == 3) { opCardList.add(card); opCardList.add(card); diff --git a/game_zp_fangpaofa/src/main/java/extend/zp/uitl/WinCardPxNew.java b/game_zp_fangpaofa/src/main/java/extend/zp/uitl/WinCardPxNew.java index 0c549bc..7242e0a 100644 --- a/game_zp_fangpaofa/src/main/java/extend/zp/uitl/WinCardPxNew.java +++ b/game_zp_fangpaofa/src/main/java/extend/zp/uitl/WinCardPxNew.java @@ -1,439 +1,444 @@ -package extend.zp.uitl; - -import extend.zp.OpCard; -import extend.zp.RuleWeight; - -import java.io.IOException; -import java.util.*; - -public class WinCardPxNew { - private boolean isJiang = false; - private List cardList; - private Stack>> opCardStack; - private List> lastOpCard; - private Integer addCard; - private int huxi = 0; - private List opCardList; - - public boolean cpaixing = false; - - public List winList; - - public List> opCardsList; - - public boolean checkHu() { - try { - int card = addCard == 0 ? (this.cardList.size() > 0 ? this.cardList.get(0) : 0) : addCard; - List list = new ArrayList(); - if (card > 0) { - list = groupCard(card, this.cardList, true); - } else if (card == 0) { - addWinOpCard(huxi, null); - return true; - } - List tempCardList = new ArrayList<>(); - for (OpCard opCard : list) { - tempCardList.clear(); - tempCardList.addAll(cardList); - Collections.sort(tempCardList); - removeOpCard(tempCardList, opCard); - List opCardS = new ArrayList<>(); - List> opCardS_1 = new ArrayList<>(); - opCardS.add(opCard); - opCardS_1.add(opCardS); - this.opCardStack.push(opCardS_1); - checkWin(tempCardList); - } - } catch (Exception e) { - return false; - } - return Win(); - } - - - private boolean Win() { - List tempCardList = new ArrayList<>(); - boolean hu, isExJiang; - for (List opCards : this.lastOpCard) { - isExJiang = false; - tempCardList.clear(); - tempCardList.addAll(cardList); - hu = false; - int huxi = this.huxi; - for (OpCard tempOpCard : opCards) { - removeOpCard(tempCardList, tempOpCard); - if (tempOpCard.type == RuleWeight.TYPE_JIANG) { - isExJiang = true; - continue; - } - huxi += tempOpCard.huXi; - } - - hu = isJiang ? isExJiang && tempCardList.size() == 0 : tempCardList.size() == 0 ; - - if (hu&&huxi>=15) { - addWinOpCard(huxi, opCards); - } - - } - return !winList.isEmpty(); - } - - private void removeOpCard(List cards, OpCard opCard) { - if (opCard.card1 > 0) { - CardUtil.removeCard(cards, opCard.card1, 1); - } - if (opCard.card2 > 0) { - CardUtil.removeCard(cards, opCard.card2, 1); - } - if (opCard.card3 > 0) { - CardUtil.removeCard(cards, opCard.card3, 1); - } - } - - private boolean isExJiang(List> list) { - for (List opCard : list) { - for (OpCard opCard2 : opCard) { - if (opCard2.type == RuleWeight.TYPE_JIANG) { - return false; - } - } - } - return true; - } - - private void checkWinnew(List cardList) throws ClassNotFoundException, IOException { - - } - - private void checkWin(List cardList) throws ClassNotFoundException, IOException { - List> opCards = this.opCardStack.pop(); - if (opCards.isEmpty()) { - return; - } - List> list = new ArrayList<>(); - if (cardList.size() == 0) { - list = CardUtil.deepCopy(opCards); - this.lastOpCard.addAll(list); - return; - } - List oplist = null, opList2 = null; - for (Integer card : cardList) { - oplist = groupCard(card, cardList, isExJiang(opCards)); - if (oplist.size() > 0) { - break; - } - } - if (oplist.size() > 0) { - List tempCardList = new ArrayList<>(); - for (OpCard opCard : oplist) { - tempCardList.clear(); - tempCardList.addAll(cardList); - list = new ArrayList<>(); - removeOpCard(tempCardList, opCard); - list = CardUtil.deepCopy(opCards); - for (List tempOpCard : list) { - tempOpCard.add(opCard); - } - for (Integer card : tempCardList) { - opList2 = groupCard(card, tempCardList, isExJiang(list)); - if (opList2.size() > 0) { - break; - } - } - if (opList2 != null && opList2.size() > 0) { - this.opCardStack.push(list); - checkWin(tempCardList); - } else { - this.lastOpCard.addAll(list); - } - - } - } else { - list = new ArrayList<>(); - list = CardUtil.deepCopy(opCards); - this.lastOpCard.addAll(list); - } - - } - - /** - * ij����Ч��� - * - * @param card - * @return - */ - private List groupCard(int card, List cardList, boolean first) { - List opCardList = new ArrayList<>(); - List tempList = new ArrayList<>(); - tempList.addAll(cardList); - shunzi1_10(card, opCardList, tempList); - shunzi2710(card, opCardList, tempList); - jiaopai(card, opCardList, tempList); - kan(card, opCardList, tempList); - if (isJiang && first) { - jiang(card, opCardList, tempList); - } - return opCardList; - } - - /** - * ��һ�Խ� - */ - private void jiang(int card, List list, List cardList) { - List tempList = new ArrayList<>(); - tempList.addAll(cardList); - if (isJiang) { - if (CardUtil.cardNum(card, cardList) >= 2) { - OpCard opCard = new OpCard(); - opCard.card1 = card; - opCard.card2 = card; - opCard.huXi = 0; - opCard.type = RuleWeight.TYPE_JIANG; - list.add(opCard); - } - } - } - - /** - * ��С 1 2 3 4 5 6 7 8 9 ˳�� - * - * @param card - */ - private void shunzi1_10(int card, List list, List cardList) { - List tempList = new ArrayList<>(); - tempList.addAll(cardList); - CardUtil.distinctList(tempList); - Collections.sort(tempList); - List opCardList = new ArrayList<>(); - // AB (C) - if (CardUtil.cardNum(card - 2, cardList) >= 1 && CardUtil.cardNum(card - 1, cardList) >= 1) { - opCardList.clear(); - opCardList.add(card); - opCardList.add(card - 1); - opCardList.add(card - 2); - list.add(addOpCard(opCardList)); - - } - // (A) B C - if (CardUtil.cardNum(card + 1, cardList) >= 1 && CardUtil.cardNum(card + 2, cardList) >= 1) { - opCardList.clear(); - opCardList.add(card); - opCardList.add(card + 1); - opCardList.add(card + 2); - list.add(addOpCard(opCardList)); - } - // A (B) C - if (CardUtil.cardNum(card - 1, cardList) >= 1 && CardUtil.cardNum(card + 1, cardList) >= 1) { - opCardList.clear(); - opCardList.add(card); - opCardList.add(card - 1); - opCardList.add(card + 1); - list.add(addOpCard(opCardList)); - } - } - - private OpCard addOpCard(List opCardList) { - Collections.sort(opCardList); - int huXi = 0; - // 123 ˳���к�Ϣ С3��6 - if (opCardList.get(0) % 100 == 1) { - huXi = Paixing.caclHuxi(RuleWeight.TYPE_CHOW, opCardList.get(0)); - } - OpCard opCard = new OpCard(RuleWeight.TYPE_CHOW, opCardList.get(0), opCardList.get(1), opCardList.get(2), huXi); - return opCard; - } - - /** - * ��С 2 7 10˳�� �к�Ϣ С3��6 - * - * @param card - */ - private void shunzi2710(int card, List list, List cardList) { - if (card % 100 == 2 || card % 100 == 7 || card % 100 == 10) { - List tempList = new ArrayList<>(); - tempList.addAll(cardList); - CardUtil.distinctList(tempList); - Collections.sort(tempList); - // (2) 7 10 - List opCardList = new ArrayList<>(); - if (CardUtil.cardNum(card + 5, cardList) >= 1 && CardUtil.cardNum(card + 8, cardList) >= 1) { - opCardList.add(card); - opCardList.add(card + 5); - opCardList.add(card + 8); - // 2 (7) 10 - } else if (CardUtil.cardNum(card - 5, cardList) >= 1 && CardUtil.cardNum(card + 3, cardList) >= 1) { - opCardList.add(card); - opCardList.add(card - 5); - opCardList.add(card + 3); - // 2 7 (10) - } else if (CardUtil.cardNum(card - 8, cardList) >= 1 && CardUtil.cardNum(card - 3, cardList) >= 1) { - opCardList.add(card); - opCardList.add(card - 3); - opCardList.add(card - 8); - } - if (opCardList.size() > 0) { - Collections.sort(opCardList); - int huXi = Paixing.caclHuxi(RuleWeight.TYPE_CHOW, opCardList.get(0)); - OpCard opCard = new OpCard(RuleWeight.TYPE_CHOW, opCardList.get(0), opCardList.get(1), opCardList.get(2), huXi); - list.add(opCard); - if (opCard.card1 != card) { - CardUtil.removeCard(tempList, opCard.card1, 1); - } - if (opCard.card2 != card) { - CardUtil.removeCard(tempList, opCard.card2, 1); - } - if (opCard.card3 != card) { - CardUtil.removeCard(tempList, opCard.card3, 1); - } - shunzi2710(card, list, tempList); - } - return; - } - } - - /** - * aaA AAa ������ ������ û��Ϣ - * - * @param card - */ - private void jiaopai(int card, List list, List cardList) { - List tempList = new ArrayList<>(); - tempList.addAll(cardList); - int type = card / 100; - int bg_num = type == 1 ? 100 : -100; - int bi_card = card + bg_num; - // aaA - if (CardUtil.cardNum(card, cardList) >= 2 && CardUtil.cardNum(bi_card, cardList) >= 1) { - OpCard opCard = new OpCard(RuleWeight.TYPE_CHOW, card, card, bi_card, 0); - list.add(opCard); - // AAa - } else if (CardUtil.cardNum(card, cardList) >= 1 && CardUtil.cardNum(bi_card, cardList) >= 2) { - OpCard opCard = new OpCard(RuleWeight.TYPE_CHOW, card, bi_card, bi_card, 0); - list.add(opCard); - } - } - - /** - * 3�� - * - * @param card - * @param list - */ - private void kan(int card, List list, List cardList) { - List tempList = new ArrayList<>(); - List opCardList = new ArrayList<>(); - tempList.addAll(cardList); - if (CardUtil.cardNum(card, cardList) == 3) { - opCardList.add(card); - opCardList.add(card); - opCardList.add(card); - int huxi = Paixing.caclHuxi(RuleWeight.TYPE_PONG, card); - OpCard opCard = new OpCard(RuleWeight.TYPE_PONG, opCardList.get(0), opCardList.get(1), opCardList.get(2), huxi); - list.add(opCard); - } - } - - private void addWinOpCard(int huxi, List opCard) { - if (opCard == null) { - opCard = new ArrayList<>(); - } - opCard.addAll(this.opCardList); - WinOpCard wo = new WinOpCard(opCard, huxi); - opCardsList.add(opCard); - winList.add(wo); - } - - public static void main(String[] args) throws ClassNotFoundException, IOException { - List list = new ArrayList<>(); - String str = "203,204,205,103,103,103,207,208,209,207,208,209,107,108,109,104,104"; - for (String card : str.split(",")) { - list.add(Integer.parseInt(card)); - } - //List op = new ArrayList(); - //OpCard opCard=new OpCard(RuleWeight.TYPE_TI, 206, 206, 206, 12); - //op.add(opCard); - - //WinCardNew winCard2 = new WinCardNew(list, 0, 0, true, op); - int[] arrs = {0,0}; - - //System.out.println(arrs); - for(int i=0;i<2;i++){ - if (i==0){ - arrs[i] = -190; - }else{ - arrs[i] = 80; - } - //System.out.println(arrs[i]); - } - Arrays.sort(arrs); - int max = arrs[1]; - int oth = arrs[0]; - //System.out.println(max+"==="+oth); - - - /* op = winCard2.groupCard(207); */ - //System.out.println(winCard2.checkHu()); - //winCard2.checkWin(list); - //winCard2.winList.forEach(wl -> System.out.println(wl.toString())); - //System.out.println(winCard2.opCardsList); - - /*int maxCount = 34; - int otherCount = -15; - double maxc = 0; - maxc =(double) maxCount / 10; - maxCount = (int) Math.round(maxc)*10; - double maxo = 0; - if (otherCount<0){ - maxo =(double)-otherCount/10L; - otherCount = -(int) Math.round(maxo)*10; - }else{ - maxo =(double)otherCount/10L; - otherCount = (int) Math.round(maxo)*10; - } - List redcards = new ArrayList<>(); - redcards.add(207); - redcards.add(202); - redcards.add(207); - List tmp = redcards; - int a=0; - int f= 0; - for(int i=0;i cardInhand, int addCard, int huxi, boolean isJiang, List opCardList) { - this.opCardStack = new Stack<>(); - this.lastOpCard = new ArrayList<>(); - this.cardList = new ArrayList(cardInhand); - this.opCardList = new ArrayList<>(opCardList); - if (addCard > 0) { - this.cardList.add(addCard); - } - Collections.sort(this.cardList); - this.isJiang = isJiang; - this.addCard = addCard; - this.huxi = huxi; - this.winList = new ArrayList<>(); - this.opCardsList = new ArrayList<>(); - } -} +//package extend.zp.uitl; +// +//import extend.zp.OpCard; +//import extend.zp.RuleWeight; +//import extend.zp.player.rulestate.PRChi; +// +//import java.io.IOException; +//import java.util.*; +// +//import com.taurus.core.util.Logger; +// +//public class WinCardPxNew { +// public static final Logger logger = Logger.getLogger(WinCardPxNew.class); +// +// private boolean isJiang = false; +// private List cardList; +// private Stack>> opCardStack; +// private List> lastOpCard; +// private Integer addCard; +// private int huxi = 0; +// private List opCardList; +// +// public boolean cpaixing = false; +// +// public List winList; +// +// public List> opCardsList; +// +// public boolean checkHu() { +// try { +// int card = addCard == 0 ? (this.cardList.size() > 0 ? this.cardList.get(0) : 0) : addCard; +// List list = new ArrayList(); +// if (card > 0) { +// list = groupCard(card, this.cardList, true); +// } else if (card == 0) { +// addWinOpCard(huxi, null); +// return true; +// } +// List tempCardList = new ArrayList<>(); +// for (OpCard opCard : list) { +// tempCardList.clear(); +// tempCardList.addAll(cardList); +// Collections.sort(tempCardList); +// removeOpCard(tempCardList, opCard); +// List opCardS = new ArrayList<>(); +// List> opCardS_1 = new ArrayList<>(); +// opCardS.add(opCard); +// opCardS_1.add(opCardS); +// this.opCardStack.push(opCardS_1); +// checkWin(tempCardList); +// } +// } catch (Exception e) { +// return false; +// } +// return Win(); +// } +// +// +// private boolean Win() { +// List tempCardList = new ArrayList<>(); +// boolean hu, isExJiang; +// for (List opCards : this.lastOpCard) { +// isExJiang = false; +// tempCardList.clear(); +// tempCardList.addAll(cardList); +// hu = false; +// int huxi = this.huxi; +// for (OpCard tempOpCard : opCards) { +// removeOpCard(tempCardList, tempOpCard); +// if (tempOpCard.type == RuleWeight.TYPE_JIANG) { +// isExJiang = true; +// continue; +// } +// huxi += tempOpCard.huXi; +// } +// +// hu = isJiang ? isExJiang && tempCardList.size() == 0 : tempCardList.size() == 0 ; +// +// if (hu&&huxi>=15) { +// addWinOpCard(huxi, opCards); +// } +// +// } +// return !winList.isEmpty(); +// } +// +// private void removeOpCard(List cards, OpCard opCard) { +// if (opCard.card1 > 0) { +// CardUtil.removeCard(cards, opCard.card1, 1); +// } +// if (opCard.card2 > 0) { +// CardUtil.removeCard(cards, opCard.card2, 1); +// } +// if (opCard.card3 > 0) { +// CardUtil.removeCard(cards, opCard.card3, 1); +// } +// } +// +// private boolean isExJiang(List> list) { +// for (List opCard : list) { +// for (OpCard opCard2 : opCard) { +// if (opCard2.type == RuleWeight.TYPE_JIANG) { +// return false; +// } +// } +// } +// return true; +// } +// +// private void checkWinnew(List cardList) throws ClassNotFoundException, IOException { +// +// } +// +// private void checkWin(List cardList) throws ClassNotFoundException, IOException { +// List> opCards = this.opCardStack.pop(); +// if (opCards.isEmpty()) { +// return; +// } +// List> list = new ArrayList<>(); +// if (cardList.size() == 0) { +// list = CardUtil.deepCopy(opCards); +// this.lastOpCard.addAll(list); +// return; +// } +// List oplist = null, opList2 = null; +// for (Integer card : cardList) { +// oplist = groupCard(card, cardList, isExJiang(opCards)); +// if (oplist.size() > 0) { +// break; +// } +// } +// if (oplist.size() > 0) { +// List tempCardList = new ArrayList<>(); +// for (OpCard opCard : oplist) { +// tempCardList.clear(); +// tempCardList.addAll(cardList); +// list = new ArrayList<>(); +// removeOpCard(tempCardList, opCard); +// list = CardUtil.deepCopy(opCards); +// for (List tempOpCard : list) { +// tempOpCard.add(opCard); +// } +// for (Integer card : tempCardList) { +// opList2 = groupCard(card, tempCardList, isExJiang(list)); +// if (opList2.size() > 0) { +// break; +// } +// } +// if (opList2 != null && opList2.size() > 0) { +// this.opCardStack.push(list); +// checkWin(tempCardList); +// } else { +// this.lastOpCard.addAll(list); +// } +// +// } +// } else { +// list = new ArrayList<>(); +// list = CardUtil.deepCopy(opCards); +// this.lastOpCard.addAll(list); +// } +// +// } +// +// /** +// * ij����Ч��� +// * +// * @param card +// * @return +// */ +// private List groupCard(int card, List cardList, boolean first) { +// List opCardList = new ArrayList<>(); +// List tempList = new ArrayList<>(); +// tempList.addAll(cardList); +// shunzi1_10(card, opCardList, tempList); +// shunzi2710(card, opCardList, tempList); +// jiaopai(card, opCardList, tempList); +// kan(card, opCardList, tempList); +// if (isJiang && first) { +// jiang(card, opCardList, tempList); +// } +// return opCardList; +// } +// +// /** +// * ��һ�Խ� +// */ +// private void jiang(int card, List list, List cardList) { +// List tempList = new ArrayList<>(); +// tempList.addAll(cardList); +// if (isJiang) { +// if (CardUtil.cardNum(card, cardList) >= 2) { +// OpCard opCard = new OpCard(); +// opCard.card1 = card; +// opCard.card2 = card; +// opCard.huXi = 0; +// opCard.type = RuleWeight.TYPE_JIANG; +// list.add(opCard); +// } +// } +// } +// +// /** +// * ��С 1 2 3 4 5 6 7 8 9 ˳�� +// * +// * @param card +// */ +// private void shunzi1_10(int card, List list, List cardList) { +// List tempList = new ArrayList<>(); +// tempList.addAll(cardList); +// CardUtil.distinctList(tempList); +// Collections.sort(tempList); +// List opCardList = new ArrayList<>(); +// // AB (C) +// if (CardUtil.cardNum(card - 2, cardList) >= 1 && CardUtil.cardNum(card - 1, cardList) >= 1) { +// opCardList.clear(); +// opCardList.add(card); +// opCardList.add(card - 1); +// opCardList.add(card - 2); +// list.add(addOpCard(opCardList)); +// +// } +// // (A) B C +// if (CardUtil.cardNum(card + 1, cardList) >= 1 && CardUtil.cardNum(card + 2, cardList) >= 1) { +// opCardList.clear(); +// opCardList.add(card); +// opCardList.add(card + 1); +// opCardList.add(card + 2); +// list.add(addOpCard(opCardList)); +// } +// // A (B) C +// if (CardUtil.cardNum(card - 1, cardList) >= 1 && CardUtil.cardNum(card + 1, cardList) >= 1) { +// opCardList.clear(); +// opCardList.add(card); +// opCardList.add(card - 1); +// opCardList.add(card + 1); +// list.add(addOpCard(opCardList)); +// } +// } +// +// private OpCard addOpCard(List opCardList) { +// Collections.sort(opCardList); +// int huXi = 0; +// // 123 ˳���к�Ϣ С3��6 +// if (opCardList.get(0) % 100 == 1) { +// huXi = Paixing.caclHuxi(RuleWeight.TYPE_CHOW_OTHER, opCardList.get(0)); +// } +// OpCard opCard = new OpCard(RuleWeight.TYPE_CHOW_OTHER, opCardList.get(0), opCardList.get(1), opCardList.get(2), huXi); +// return opCard; +// } +// +// /** +// * ��С 2 7 10˳�� �к�Ϣ С3��6 +// * +// * @param card +// */ +// private void shunzi2710(int card, List list, List cardList) { +// if (card % 100 == 2 || card % 100 == 7 || card % 100 == 10) { +// List tempList = new ArrayList<>(); +// tempList.addAll(cardList); +// CardUtil.distinctList(tempList); +// Collections.sort(tempList); +// // (2) 7 10 +// List opCardList = new ArrayList<>(); +// if (CardUtil.cardNum(card + 5, cardList) >= 1 && CardUtil.cardNum(card + 8, cardList) >= 1) { +// opCardList.add(card); +// opCardList.add(card + 5); +// opCardList.add(card + 8); +// // 2 (7) 10 +// } else if (CardUtil.cardNum(card - 5, cardList) >= 1 && CardUtil.cardNum(card + 3, cardList) >= 1) { +// opCardList.add(card); +// opCardList.add(card - 5); +// opCardList.add(card + 3); +// // 2 7 (10) +// } else if (CardUtil.cardNum(card - 8, cardList) >= 1 && CardUtil.cardNum(card - 3, cardList) >= 1) { +// opCardList.add(card); +// opCardList.add(card - 3); +// opCardList.add(card - 8); +// } +// if (opCardList.size() > 0) { +// Collections.sort(opCardList); +// int huXi = Paixing.caclHuxi(RuleWeight.TYPE_CHOW, opCardList.get(0)); +// OpCard opCard = new OpCard(RuleWeight.TYPE_CHOW, opCardList.get(0), opCardList.get(1), opCardList.get(2), huXi); +// list.add(opCard); +// if (opCard.card1 != card) { +// CardUtil.removeCard(tempList, opCard.card1, 1); +// } +// if (opCard.card2 != card) { +// CardUtil.removeCard(tempList, opCard.card2, 1); +// } +// if (opCard.card3 != card) { +// CardUtil.removeCard(tempList, opCard.card3, 1); +// } +// shunzi2710(card, list, tempList); +// } +// return; +// } +// } +// +// /** +// * aaA AAa ������ ������ û��Ϣ +// * +// * @param card +// */ +// private void jiaopai(int card, List list, List cardList) { +// List tempList = new ArrayList<>(); +// tempList.addAll(cardList); +// int type = card / 100; +// int bg_num = type == 1 ? 100 : -100; +// int bi_card = card + bg_num; +// // aaA +// if (CardUtil.cardNum(card, cardList) >= 2 && CardUtil.cardNum(bi_card, cardList) >= 1) { +// OpCard opCard = new OpCard(RuleWeight.TYPE_CHOW, card, card, bi_card, 0); +// list.add(opCard); +// // AAa +// } else if (CardUtil.cardNum(card, cardList) >= 1 && CardUtil.cardNum(bi_card, cardList) >= 2) { +// OpCard opCard = new OpCard(RuleWeight.TYPE_CHOW, card, bi_card, bi_card, 0); +// list.add(opCard); +// } +// } +// +// /** +// * 3�� +// * +// * @param card +// * @param list +// */ +// private void kan(int card, List list, List cardList) { +// List tempList = new ArrayList<>(); +// List opCardList = new ArrayList<>(); +// tempList.addAll(cardList); +// if (CardUtil.cardNum(card, cardList) == 3) { +// opCardList.add(card); +// opCardList.add(card); +// opCardList.add(card); +// int huxi = Paixing.caclHuxi(RuleWeight.TYPE_PONG, card); +// OpCard opCard = new OpCard(RuleWeight.TYPE_PONG, opCardList.get(0), opCardList.get(1), opCardList.get(2), huxi); +// list.add(opCard); +// } +// } +// +// private void addWinOpCard(int huxi, List opCard) { +// if (opCard == null) { +// opCard = new ArrayList<>(); +// } +// opCard.addAll(this.opCardList); +// WinOpCard wo = new WinOpCard(opCard, huxi); +// opCardsList.add(opCard); +// winList.add(wo); +// } +// +// public static void main(String[] args) throws ClassNotFoundException, IOException { +// List list = new ArrayList<>(); +// String str = "203,204,205,103,103,103,207,208,209,207,208,209,107,108,109,104,104"; +// for (String card : str.split(",")) { +// list.add(Integer.parseInt(card)); +// } +// //List op = new ArrayList(); +// //OpCard opCard=new OpCard(RuleWeight.TYPE_TI, 206, 206, 206, 12); +// //op.add(opCard); +// +// //WinCardNew winCard2 = new WinCardNew(list, 0, 0, true, op); +// int[] arrs = {0,0}; +// +// //System.out.println(arrs); +// for(int i=0;i<2;i++){ +// if (i==0){ +// arrs[i] = -190; +// }else{ +// arrs[i] = 80; +// } +// //System.out.println(arrs[i]); +// } +// Arrays.sort(arrs); +// int max = arrs[1]; +// int oth = arrs[0]; +// //System.out.println(max+"==="+oth); +// +// +// /* op = winCard2.groupCard(207); */ +// //System.out.println(winCard2.checkHu()); +// //winCard2.checkWin(list); +// //winCard2.winList.forEach(wl -> System.out.println(wl.toString())); +// //System.out.println(winCard2.opCardsList); +// +// /*int maxCount = 34; +// int otherCount = -15; +// double maxc = 0; +// maxc =(double) maxCount / 10; +// maxCount = (int) Math.round(maxc)*10; +// double maxo = 0; +// if (otherCount<0){ +// maxo =(double)-otherCount/10L; +// otherCount = -(int) Math.round(maxo)*10; +// }else{ +// maxo =(double)otherCount/10L; +// otherCount = (int) Math.round(maxo)*10; +// } +// List redcards = new ArrayList<>(); +// redcards.add(207); +// redcards.add(202); +// redcards.add(207); +// List tmp = redcards; +// int a=0; +// int f= 0; +// for(int i=0;i cardInhand, int addCard, int huxi, boolean isJiang, List opCardList) { +// this.opCardStack = new Stack<>(); +// this.lastOpCard = new ArrayList<>(); +// this.cardList = new ArrayList(cardInhand); +// this.opCardList = new ArrayList<>(opCardList); +// if (addCard > 0) { +// this.cardList.add(addCard); +// } +// Collections.sort(this.cardList); +// this.isJiang = isJiang; +// this.addCard = addCard; +// this.huxi = huxi; +// this.winList = new ArrayList<>(); +// this.opCardsList = new ArrayList<>(); +// } +//}