diff --git a/game_web/web_group/target/ROOT.war b/game_web/web_group/target/ROOT.war index 38c4768..9665846 100644 Binary files a/game_web/web_group/target/ROOT.war and b/game_web/web_group/target/ROOT.war differ diff --git a/game_web/web_group/target/ROOT/WEB-INF/lib/robot_common-1.0.1.jar b/game_web/web_group/target/ROOT/WEB-INF/lib/robot_common-1.0.1.jar index e9feacd..d291330 100644 Binary files a/game_web/web_group/target/ROOT/WEB-INF/lib/robot_common-1.0.1.jar and b/game_web/web_group/target/ROOT/WEB-INF/lib/robot_common-1.0.1.jar differ diff --git a/libs/robot_common/src/main/java/hunan/HuNanChangSha.java b/libs/robot_common/src/main/java/hunan/HuNanChangSha.java index 159c0bf..f62a3d5 100644 --- a/libs/robot_common/src/main/java/hunan/HuNanChangSha.java +++ b/libs/robot_common/src/main/java/hunan/HuNanChangSha.java @@ -297,6 +297,17 @@ public class HuNanChangSha { int id = firstTip.getInt("id"); int weight = firstTip.getInt("weight"); card = firstTip.getInt("card"); + + + if (type == 6){ + params.putString("session", session + "," + token); + params.putInt("qi", 0); + params.putInt("id", id); + client.send("612", params, response -> { + }); + return "胡牌"; + } + if ((type == 5 || type == 3 || type==4)&&weight==4) { //判断开杠后是否能下听 List gangusecars = new ArrayList<>(); @@ -309,6 +320,20 @@ public class HuNanChangSha { if (shifoutingpai3.size() > 0) { //开杠 + //判断是否杠了之后没有牌可以听 + List allList = new ArrayList<>(); + allList.addAll(changShaCardInhand); + allList.addAll(changShachuguopai); + int jutingnum = changShaSuanFaTest.getTingPainum(shifoutingpai3,allList); + if (jutingnum==0){ + params.putString("session", session + "," + token); + params.putInt("qi", 0); + params.putInt("id", 0); + client.send("612", params, response -> { + }); + return "不开杠"; + } + Util.removeCard(changShaCardInhand,card,3); params.putString("session", session + "," + token); params.putInt("qi", 0); @@ -327,11 +352,29 @@ public class HuNanChangSha { } if (type == 4) { + + + // Util.removeCard(changShaCardInhand,card,4); Util.removeCard(gangusecars,card,4); List shifoutingpai4 = changShaSuanFaTest.handscardshifoutingpai(gangusecars,chowGroup,pongGroup,gangdepai); if (shifoutingpai4.size() > 0) { //开杠 + + //判断是否杠了之后没有牌可以听 + List allList = new ArrayList<>(); + allList.addAll(changShaCardInhand); + allList.addAll(changShachuguopai); + int jutingnum = changShaSuanFaTest.getTingPainum(shifoutingpai4,allList); + if (jutingnum==0){ + params.putString("session", session + "," + token); + params.putInt("qi", 0); + params.putInt("id", 0); + client.send("612", params, response -> { + }); + return "不开杠"; + } + Util.removeCard(changShaCardInhand,card,4); params.putString("session", session + "," + token); params.putInt("qi", 0); @@ -355,6 +398,21 @@ public class HuNanChangSha { List shifoutingpai5 = changShaSuanFaTest.handscardshifoutingpai(gangusecars,chowGroup,pongGroup,gangdepai); if (shifoutingpai5.size() > 0) { //开杠 + + //判断是否杠了之后没有牌可以听 + List allList = new ArrayList<>(); + allList.addAll(changShaCardInhand); + allList.addAll(changShachuguopai); + int jutingnum = changShaSuanFaTest.getTingPainum(shifoutingpai5,allList); + if (jutingnum==0){ + params.putString("session", session + "," + token); + params.putInt("qi", 0); + params.putInt("id", 0); + client.send("612", params, response -> { + }); + return "不开杠"; + } + Util.removeCard(changShaCardInhand,card,1); params.putString("session", session + "," + token); params.putInt("qi", 0); diff --git a/libs/robot_common/src/main/java/hunan/JiQiRens.java b/libs/robot_common/src/main/java/hunan/JiQiRens.java index cc23864..cd8c828 100644 --- a/libs/robot_common/src/main/java/hunan/JiQiRens.java +++ b/libs/robot_common/src/main/java/hunan/JiQiRens.java @@ -1298,18 +1298,18 @@ public class JiQiRens { // //重连 - if ("22".equalsIgnoreCase(wanfaId)) { //湖南红中麻将 - client = new TaurusClient("8.138.242.190:6421", "game", TaurusClient.ConnectionProtocol.Tcp); - } - - if ("10".equalsIgnoreCase(wanfaId)) { - client = new TaurusClient("127.0.0.1:6311", "game", TaurusClient.ConnectionProtocol.Tcp); - } +// if ("22".equalsIgnoreCase(wanfaId)) { //湖南红中麻将 +// client = new TaurusClient("8.138.242.190:6421", "game", TaurusClient.ConnectionProtocol.Tcp); +// } // - if ("66".equalsIgnoreCase(wanfaId)) { - client = new TaurusClient("8.138.242.190:6841", "game", TaurusClient.ConnectionProtocol.Tcp); - } - client.connect(); +// if ("10".equalsIgnoreCase(wanfaId)) { +// client = new TaurusClient("127.0.0.1:6311", "game", TaurusClient.ConnectionProtocol.Tcp); +// } +//// +// if ("66".equalsIgnoreCase(wanfaId)) { +// client = new TaurusClient("8.138.242.190:6841", "game", TaurusClient.ConnectionProtocol.Tcp); +// } +// client.connect(); } } diff --git a/libs/robot_common/src/main/java/taurus/util/ChangShaSuanFaTest.java b/libs/robot_common/src/main/java/taurus/util/ChangShaSuanFaTest.java index 8e84b12..15dc58b 100644 --- a/libs/robot_common/src/main/java/taurus/util/ChangShaSuanFaTest.java +++ b/libs/robot_common/src/main/java/taurus/util/ChangShaSuanFaTest.java @@ -169,6 +169,7 @@ public class ChangShaSuanFaTest { int caozuonum = 0; List tmpres = new ArrayList<>(); tmpres.addAll(resultList); + tmpres.addAll(cardInhand); for (Map.Entry> entry : afterOp.entrySet()) { if (caozuonum==0){ caozuonum = getTingPainum(entry.getValue(),tmpres); @@ -492,22 +493,33 @@ public class ChangShaSuanFaTest { //调平胡递归 List integers = ChangshaWinSplitCard.analyzeBestDiscard(pinghuhandCards); - Integer integer = 0; + int integer = 0; - integer = selectBestCardByPriority(integers); + integer = selectBestCardByPriority(integers); + Map> mapduijiang = new HashMap<>(); + System.out.println(pinghuhandCards); + int duijiangnum = checkduijiang(pinghuhandCards); + System.out.println("mapduijiang:"+duijiangnum); - if (integers.size()>1){ + if (integers.size()>1&&duijiangnum==0){ integer = selectBestCardRemove258(integers); } + //判断是否可以开杠 + int cardnum = 0; + if (integer>0){ + cardnum = Util.cardNum(integer,cardInhand); + } - if (integers.size() > 0) { + + if (integers.size() > 0&&cardnum<4) { System.out.println("平胡最新出牌策略=============================================== 666 " + integer); return String.valueOf(integer); } + //先拆对子 //再拆门子 @@ -614,6 +626,8 @@ public class ChangShaSuanFaTest { System.out.println("258将牌: " + is258Cards); System.out.println("非258牌: " + non258Cards); + + // 优先从非258牌中选 if (!non258Cards.isEmpty()) { return selectBestSingleCard(non258Cards); @@ -4408,6 +4422,12 @@ public class ChangShaSuanFaTest { return chiob; } + public static boolean shiFouJieTing(List tingList,List changShachuguopai ){ + + + return false; + } + public static int getTingPainum(List caozq, List changShachuguopai){ int num = 0; for (int i=0;i allcard = new ArrayList<>(); - allcard.add(208); - allcard.add(208); + allcard.add(108); + allcard.add(109); + allcard.add(107); /*ITArray opcard = TArray.newInstance(); opcard.addInt(209); opcard.addInt(208);*/ @@ -4614,14 +4637,15 @@ public class ChangShaSuanFaTest { ListchangShachuguopai = new ArrayList<>(); //changShachuguopai.add(101); - // changShachuguopai.add(207); + changShachuguopai.addAll(allcard); + List gangguopai = new ArrayList<>(); //gangguopai.add(206); // gangguopai.add(206); //gangguopai.add(206); //gangguopai.add(206); - int card = 202; + int card = 101; ListpengCard = new ArrayList<>(); // pengCard.add(102); //出牌求优 diff --git a/libs/robot_common/src/main/java/taurus/util/ChangshaWinSplitCard.java b/libs/robot_common/src/main/java/taurus/util/ChangshaWinSplitCard.java index 51fed35..57d1f57 100644 --- a/libs/robot_common/src/main/java/taurus/util/ChangshaWinSplitCard.java +++ b/libs/robot_common/src/main/java/taurus/util/ChangshaWinSplitCard.java @@ -747,6 +747,8 @@ public class ChangshaWinSplitCard { System.out.println("258将牌: " + is258Cards); System.out.println("非258牌: " + non258Cards); + //判断是否手牌有其他对将 + // 优先从非258牌中选 if (!non258Cards.isEmpty()) { @@ -754,6 +756,7 @@ public class ChangshaWinSplitCard { } // 如果没有非258牌,从258牌中选 + if (!is258Cards.isEmpty()) { return selectBestSingleCard(is258Cards); } diff --git a/majiang/changsha/game_mj_cs/src/main/java/extend/mj/EXGameController.java b/majiang/changsha/game_mj_cs/src/main/java/extend/mj/EXGameController.java index db5ba7c..f36fba4 100644 --- a/majiang/changsha/game_mj_cs/src/main/java/extend/mj/EXGameController.java +++ b/majiang/changsha/game_mj_cs/src/main/java/extend/mj/EXGameController.java @@ -249,7 +249,7 @@ public class EXGameController extends GameController { for (Entry entry : owner.playerMapById.entrySet()) { EXPlayer player = (EXPlayer)entry.getValue(); player.cardInhand = owner.card.deal(player, owner.bankerSeat == player.seat?14:13); - //player.cardInhand = owner.card.deal(owner.bankerSeat == player.seat?14:13); +// player.cardInhand = owner.card.deal(owner.bankerSeat == player.seat?14:13); if(owner.bankerSeat == player.seat) { player.drawCard = player.cardInhand.get(player.cardInhand.size()-1); player.skipDraw = true; diff --git a/majiang/changsha/game_mj_cs/src/main/java/extend/mj/RoomCard.java b/majiang/changsha/game_mj_cs/src/main/java/extend/mj/RoomCard.java index 6dac8af..63b495f 100644 --- a/majiang/changsha/game_mj_cs/src/main/java/extend/mj/RoomCard.java +++ b/majiang/changsha/game_mj_cs/src/main/java/extend/mj/RoomCard.java @@ -20,9 +20,9 @@ public class RoomCard { public void init() { this.cardList.clear(); this.subCardList.clear(); - //this.initCard(); - //this.shuffle(); - this.initCard2(); + this.initCard(); + this.shuffle(); +// this.initCard2(); } private void initCard2() { @@ -150,7 +150,7 @@ public class RoomCard { // 发牌 public List deal(EXPlayer owner, int num) { List dealCards = new ArrayList<>(); - // shuffle(); + shuffle(); for (int index = 0; index < num ; index++) { double rand = Math.random() % 100 * 100; diff --git a/majiang/changsha/game_mj_cs/target/classes/extend/mj/RoomCard.class b/majiang/changsha/game_mj_cs/target/classes/extend/mj/RoomCard.class index 6c539e2..6e64632 100644 Binary files a/majiang/changsha/game_mj_cs/target/classes/extend/mj/RoomCard.class and b/majiang/changsha/game_mj_cs/target/classes/extend/mj/RoomCard.class differ diff --git a/majiang/changsha/game_mj_cs/target/game.jar b/majiang/changsha/game_mj_cs/target/game.jar index 665e626..c47f07e 100644 Binary files a/majiang/changsha/game_mj_cs/target/game.jar and b/majiang/changsha/game_mj_cs/target/game.jar differ