diff --git a/game_web/web_group/target/ROOT.war b/game_web/web_group/target/ROOT.war index 5c80fd0..38c4768 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 1fdd143..e9feacd 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 7499d26..159c0bf 100644 --- a/libs/robot_common/src/main/java/hunan/HuNanChangSha.java +++ b/libs/robot_common/src/main/java/hunan/HuNanChangSha.java @@ -1604,48 +1604,61 @@ public class HuNanChangSha { ITObject params = TObject.newInstance(); TaurusClient tc = new TaurusClient("127.0.0.1","10", TaurusClient.ConnectionProtocol.Tcp); List hands1 = new ArrayList<>(); + hands1.add(209); + hands1.add(209); hands1.add(207); - hands1.add(207); - hands1.add(202); - hands1.add(202); + hands1.add(206); - hands1.add(202); + hands1.add(205); hands1.add(109); hands1.add(109); - hands1.add(109); - hands1.add(102); - hands1.add(104); + hands1.add(107); + hands1.add(106); + hands1.add(105); - hands1.add(104); - hands1.add(102); - hands1.add(102); + hands1.add(203); + hands1.add(202); + hands1.add(201); int card= 109; huNanChangSha.changShaCardInhand.addAll(hands1); TArray tiplist= new TArray(); ITArray opcard = TArray.newInstance(); - opcard.addInt(109); + opcard.addInt(207); + opcard.addInt(206); + // opcard.addInt(203); TObject tob = new TObject(); tob.putInt("weight",1); tob.putInt("id",1); - tob.putInt("type",2); + tob.putInt("type",1); tob.putInt("card",card); tob.putTArray("opcard", opcard); - tiplist.addTObject(tob); + //tiplist.addTObject(tob); ITArray opcard2 = TArray.newInstance(); opcard2.addInt(109); // opcard2.addInt(206); TObject tob2 = new TObject(); - tob2.putInt("weight",4); - tob2.putInt("id",2); - tob2.putInt("type",3); + tob2.putInt("weight",1); + tob2.putInt("id",1); + tob2.putInt("type",2); tob2.putInt("card",card); tob2.putTArray("opcard", opcard2); tiplist.addTObject(tob2); + ITArray opcard3 = TArray.newInstance(); + opcard2.addInt(202); + // opcard2.addInt(206); + TObject tob3 = new TObject(); + tob3.putInt("weight",3); + tob3.putInt("id",2); + tob3.putInt("type",3); + tob3.putInt("card",card); + tob3.putTArray("opcard", opcard2); + // tiplist.addTObject(tob3); + params.putTArray("tip_list",tiplist); System.out.println(params); //已经吃掉数据 diff --git a/libs/robot_common/src/main/java/hunan/JiQiRens.java b/libs/robot_common/src/main/java/hunan/JiQiRens.java index 3acc2ab..cc23864 100644 --- a/libs/robot_common/src/main/java/hunan/JiQiRens.java +++ b/libs/robot_common/src/main/java/hunan/JiQiRens.java @@ -1296,6 +1296,21 @@ public class JiQiRens { } else { // + //重连 + + 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 ("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 b665b1c..8e84b12 100644 --- a/libs/robot_common/src/main/java/taurus/util/ChangShaSuanFaTest.java +++ b/libs/robot_common/src/main/java/taurus/util/ChangShaSuanFaTest.java @@ -508,6 +508,11 @@ public class ChangShaSuanFaTest { } + //先拆对子 + + //再拆门子 + + ai ai1 = new ai(); // ChangshaMahjongAI ai = new ChangshaMahjongAI(); PlayerState playerState = new PlayerState(); @@ -532,17 +537,17 @@ public class ChangShaSuanFaTest { } - int bestDiscard = ai1.findBestDiscard(playerState); + //int bestDiscard = ai1.findBestDiscard(playerState); + // System.out.println("bestDiscard:"+bestDiscard); - - if (bestDiscard != 0) { + /* if (bestDiscard != 0) { if (ai1.isTinAi) { isTin = true; } System.out.println("Ai出牌长麻 ++++++++++++++++++++++++++++++++++++++"); log.info("Ai出牌长麻==============================="); return String.valueOf(bestDiscard); - } + }*/ @@ -3833,15 +3838,15 @@ public class ChangShaSuanFaTest { } boolean pph = false; //3、碰碰胡 - if (pengGrop.size()==3){ + if (pengGrop.size()==3&&chowGrop.size()==0){ if (cpairs>3){ return 3; } - }else if (pengGrop.size()==6){ + }else if (pengGrop.size()==6&&chowGrop.size()==0){ if (cpairs>2){ return 3; } - }else if (pengGrop.size()==9){ + }else if (pengGrop.size()==9&&chowGrop.size()==0){ if (cpairs>1){ return 3; } @@ -3989,8 +3994,10 @@ public class ChangShaSuanFaTest { if (entry.getValue().getInt("guzhang")>0){ tmp= tmp+entry.getValue().getInt("guzhang")*2; } + System.out.println("tmp:"+tmp); fell.put(entry.getKey(), tmp); } + //找分数最高的id int dangqianfen = 0; int dangqianid = 0; @@ -4141,7 +4148,15 @@ public class ChangShaSuanFaTest { Map map2 = new HashMap<>(); System.out.println(checkCards); Map> xiatingList = new HashMap<>(); + + pengGrop.add(card); + pengGrop.add(card); + pengGrop.add(card); map2 = quyizhangChayou(checkCards,chowGroup,pengGrop,gangGrop,xiatingList); + Util.removeCard(pengGrop,card,3); + + pengGrop.add(card); + pengGrop.add(card); System.out.println("map2:"+map2); System.out.println("xiatingList:"+xiatingList); //比对 @@ -4221,6 +4236,19 @@ public class ChangShaSuanFaTest { chiob.putInt("teshu",5); } } + //检测是否有4对 + int duizi = countPairs(yupanhandcard); + if (duizi>=4&&pengGrop.size()==0){ + chiob.putInt("teshu",5); + } + if (duizi>=3&&pengGrop.size()==1){ + chiob.putInt("teshu",8); + } + if (duizi>=2&&pengGrop.size()==2){ + chiob.putInt("teshu",10); + } + + System.out.println("peng:"+chiob); return chiob; } @@ -4328,7 +4356,18 @@ public class ChangShaSuanFaTest { Map map2 = new HashMap<>(); System.out.println(checkCards); Map> xiatingList = new HashMap<>(); + + chowGroup.add(card); + for (int i=0;i handscardshifoutingpai(List cardhand,ListchowGroup,List pongGroup,List gangdepai) { List tpcards = new ArrayList<>(); - List tmphc = cardhand; + List tmphc = new ArrayList<>(); + tmphc.addAll(cardhand); for (int j = 101; j <= 109; j++) { WinCard win = new WinCard(tmphc, j); if (win.tryWin()) { @@ -4398,8 +4438,9 @@ public class ChangShaSuanFaTest { tpcards.add(j); } } + Paixing px = new Paixing(); - if(px.tingCheck(cardhand,chowGroup,pongGroup,gangdepai)){ + if(px.tingCheck(tmphc,chowGroup,pongGroup,gangdepai)){ if (!tpcards.contains(j)) { tpcards.add(j); } @@ -4413,15 +4454,13 @@ public class ChangShaSuanFaTest { tpcards.add(k); } } - if(px.tingCheck(cardhand,chowGroup,pongGroup,gangdepai)){ + if(px.tingCheck(tmphc,chowGroup,pongGroup,gangdepai)){ if (!tpcards.contains(k)) { tpcards.add(k); } } } //如果没有则检测大胡 - - return tpcards; } @@ -4465,7 +4504,9 @@ public class ChangShaSuanFaTest { Map map = new HashMap<>(); Map> bigMap = new HashMap<>(); - List tmphc = cardhand; + List tmphc = new ArrayList<>(); + tmphc.addAll(cardhand); + System.out.println("tmphc1:"+tmphc); for (int i = 0; i < cardhand.size(); i++) { int tmpcard = tmphc.get(0); tmphc.remove(0); @@ -4476,18 +4517,22 @@ public class ChangShaSuanFaTest { //检查是否能下听 List tmxt = new ArrayList<>(); - tmxt =handscardshifoutingpai(tmphc,chowGroup,pongGroup,gangdepai); + tmxt = handscardshifoutingpai(tmphc,chowGroup,pongGroup,gangdepai); if (tmxt.size()>0){ xiatingList.put(tmpcard,tmxt); } tmphc.add(tmpcard); } + System.out.println(bigMap); + System.out.println("吃之后"); //遍历找最优解 if (bigMap.size()==0){ return map; } + Map bestmap = gaiBestCardInMap(bigMap); + return bestmap; } private static Map gaiBestCardInMap(Map> map){ @@ -4505,6 +4550,7 @@ public class ChangShaSuanFaTest { }else if (tmpr==entr){ List tl = (List)tmpmap.get("cardResiue"); List enl = (List)entry.getValue().get("cardResiue"); + if (tl.size()>enl.size()){ tmpmap = entry.getValue(); } @@ -4521,6 +4567,7 @@ public class ChangShaSuanFaTest { } } } + return tmpmap; } @@ -4528,20 +4575,20 @@ public class ChangShaSuanFaTest { // 测试用例:没有258将牌的情况 List test1 = new ArrayList(); - test1.add(109); - test1.add(109); + test1.add(208); + test1.add(208); + test1.add(208); + test1.add(201); + + test1.add(201); test1.add(108); test1.add(107); test1.add(107); - test1.add(107); - test1.add(104); - - test1.add(102); test1.add(103); - test1.add(102); + test1.add(103); - test1.add(102); + test1.add(101); test1.add(101); test1.add(101); @@ -4574,7 +4621,7 @@ public class ChangShaSuanFaTest { //gangguopai.add(206); //gangguopai.add(206); - int card = 105; + int card = 202; 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 25c76bb..51fed35 100644 --- a/libs/robot_common/src/main/java/taurus/util/ChangshaWinSplitCard.java +++ b/libs/robot_common/src/main/java/taurus/util/ChangshaWinSplitCard.java @@ -2,10 +2,82 @@ package taurus.util; import com.game.Util; +import java.sql.Array; import java.util.*; import java.util.stream.Collectors; public class ChangshaWinSplitCard { + // 获取数值 + // 获取数值 + public static int GetCardValue(int cbCardData) { + return cbCardData % 100; + } + + // 获取花色 + public static int GetCardColor(int cbCardData) { + return cbCardData / 100; + } + + // 扑克转换 + public static int SwitchToCardData(int cbCardIndex) { + int cbCardColor = cbCardIndex / 10; + int cbCardValue = cbCardIndex % 10; + if (cbCardIndex < 27) { // 9 -> 200 + 1 //10 -> 202 //11 -> 203 // 17 -> 209 // 18 -> 301 19->302 20 -> + // 303 26->309 + if (cbCardValue + (cbCardColor + 1) >= 10) { + return (cbCardColor + 2) * 100 + (cbCardValue + (cbCardColor + 1)) % 10 + 1; + } else { + return (cbCardColor + 1) * 100 + cbCardValue + (cbCardColor + 1); + } + } else { // 27 -> 400 //28 -> 403 // 29 -> 406 // 30 -> 409 //31 -> 412 // 32 -> 415 // + // 33 -> 418 + if (cbCardValue + (cbCardColor + 1) >= 10) { + return (cbCardColor + 2) * 100 + (cbCardValue + (cbCardColor + 1)) % 10 * 3; + } else { + return (cbCardColor + 1) * 100 + (cbCardValue + cbCardColor) * 3; + } + } + } + + // 扑克转换 + public static int SwitchToCardIndex(int cbCardData) { + // 扑克属性 + int cbCardColor = GetCardColor(cbCardData); + int cbCardValue = GetCardValue(cbCardData); + if (cbCardColor <= 3) { + return (cbCardColor - 1) * 10 + cbCardValue - cbCardColor; + } else { + return (cbCardColor - 1) * 10 + cbCardValue / 3 - cbCardColor + 1; + } + } + + // 扑克转换 + public static int[] SwitchToCardData(List cardInhand) { + int[] cardIndex = new int[34]; + for (int i = 0; i < cardIndex.length; i++) { + cardIndex[i] = 0; + } + + for (int i = 0; i < cardInhand.size(); i++) { + + int pos = SwitchToCardIndex(cardInhand.get(i)); + cardIndex[pos]++; + } + + return cardIndex; + } + + // 扑克转换 + public static List SwitchToCardIndex(int[] cardIndex) { + List cardIndexList = new ArrayList(); + for (int i = 0; i < cardIndex.length; i++) { + for (int j = 0; j < cardIndex[i]; j++) { + int card = SwitchToCardData(i); + cardIndexList.add(card); + } + } + return cardIndexList; + } // 统计牌数 public static int[][] countTiles(List cardInHand) { @@ -20,7 +92,6 @@ public class ChangshaWinSplitCard { return counts; } - // 检测不带精湖 public static int checkNormalHu(List cardInHand, Map map) { String info = ""; @@ -53,7 +124,8 @@ public class ChangshaWinSplitCard { List cardResiue = (List) map.get("cardResiue"); for (int i = 0; i < cardResiue.size() - 1; i++) { - if (cardResiue.get(i).equals(cardResiue.get(i + 1)) && (cardResiue.get(i) % 100 == 2 || cardResiue.get(i) % 100 == 5 || cardResiue.get(i) % 100 == 8)) { + if (cardResiue.get(i).equals(cardResiue.get(i + 1)) + && (cardResiue.get(i) % 100 == 2 || cardResiue.get(i) % 100 == 5 || cardResiue.get(i) % 100 == 8)) { cardResiue.remove(i); cardResiue.remove(i); break; @@ -68,40 +140,6 @@ public class ChangshaWinSplitCard { return group; } - public static void haveBetween(List cards, List cardInHand) { - if (cards.size() <= 1 || cardInHand.size() <= 1) { - return; - } - - // 创建要删除的牌列表 - Set toRemove = new HashSet<>(); - - // 遍历手牌中的每一张牌 - for (int handCard : cardInHand) { - // 检查cards中是否有与手牌形成靠章的牌 - for (int card : cards) { - // 定义靠章规则:相同、相邻或隔一张 - int diff = Math.abs(card - handCard); - if (diff == 1 || diff == 2) { - toRemove.add(card); - } - } - } - - // 只有当cards中还有多于1张牌时才执行删除 - //if (toRemove.size()- cards.size() > 1){ - if(cards.size()-toRemove.size()>0){ - cards.removeAll(toRemove); - } - - // 可选:打印信息 - if (!toRemove.isEmpty()) { - System.out.println("删除的牌: " + toRemove); - System.out.println("cards剩余: " + cards); - } - } - - // 递归检查是否可以组成顺子或刻子 public static int checkMelds(int[][] counts, int remainingMelds, Map map) { if (remainingMelds == 0) { @@ -150,24 +188,24 @@ public class ChangshaWinSplitCard { // 判断孤章 List cardResiue = convertCountToCards(counts); -// System.out.println("只差几手牌" + remainingMelds + "," + cardResiue); - if (cardResiue.size()!=0) { - //优先保留连续张 + // System.out.println("只差几手牌" + remainingMelds + "," + cardResiue); + if (cardResiue.size() != 0) { + // 优先保留连续张 removeConsecutivePairs1(cardResiue); } - if (cardResiue.size()!=0) { - //第二优先保留对子 + if (cardResiue.size() != 0) { + // 第二优先保留对子 removeConsecutivePairsTwo(cardResiue); } - //最后保留坎张 - //如果坎张,为空则取边张 - if (cardResiue.size()!=0) { + // 最后保留坎张 + // 如果坎张,为空则取边张 + if (cardResiue.size() != 0) { List tmp3 = new ArrayList<>(); tmp3.addAll(cardResiue); removeConsecutivePairs2(cardResiue); if (cardResiue.size() == 0) { - //取边站 + // 取边站 cardResiue = qubianzhang(tmp3); } } @@ -185,7 +223,8 @@ public class ChangshaWinSplitCard { map.put("cardResiue", cardResiue); } for (int i = 0; i < cardResiue.size() - 1; i++) { - if (cardResiue.get(i).equals(cardResiue.get(i + 1)) && (cardResiue.get(i) % 100 == 2 || cardResiue.get(i) % 100 == 5 || cardResiue.get(i) % 100 == 8)) { + if (cardResiue.get(i).equals(cardResiue.get(i + 1)) + && (cardResiue.get(i) % 100 == 2 || cardResiue.get(i) % 100 == 5 || cardResiue.get(i) % 100 == 8)) { cardResiue.remove(i); cardResiue.remove(i); if (remainingMelds >= 2) { @@ -196,14 +235,20 @@ public class ChangshaWinSplitCard { } if (Integer.parseInt(map.get("remainingMelds").toString()) >= remainingMelds && cardResiue.size() > 0) { // 如果没有258做将则需要进入这里判断 + if (remainingMelds == 1 && cardResiue.size() == 2) { for (int i = 0; i < cardResiue.size(); i++) { int diff = Math.abs(cardResiue.get(0) - cardResiue.get(1)); - if (diff>1) { - map.put("remainingMelds", remainingMelds + 1);// 删除符合258做将的牌if (cardResiue.size() > 1) {cardResiue.remove(i);}map.put("cardResiue", cardResiue); + if (diff > 1) { + map.put("remainingMelds", remainingMelds + 1);// 删除符合258做将的牌 + if (cardResiue.size() > 1) { + cardResiue.remove(i); + } + map.put("cardResiue", cardResiue); - }else { - if (cardResiue.get(i) % 100 == 2 || cardResiue.get(i) % 100 == 5 || cardResiue.get(i) % 100 == 8) { + } else { + if (cardResiue.get(i) % 100 == 2 || cardResiue.get(i) % 100 == 5 + || cardResiue.get(i) % 100 == 8) { // 删除符合258做将的牌 if (cardResiue.size() > 1) { cardResiue.remove(i); @@ -219,7 +264,7 @@ public class ChangshaWinSplitCard { } } - } else if (remainingMelds == 1) { + } else { map.put("remainingMelds", remainingMelds); map.put("cardResiue", cardResiue); } @@ -241,7 +286,7 @@ public class ChangshaWinSplitCard { int i = 0; while (i < sorted.size()) { - // boolean isleft = sorted.get(i) % 100 == 1 || sorted.get(i) % 100 == 8; + // boolean isleft = sorted.get(i) % 100 == 1 || sorted.get(i) % 100 == 8; if (i < sorted.size() - 1 && sorted.get(i + 1) - sorted.get(i) == 0) { // 跳过对子 i += 2; @@ -256,7 +301,6 @@ public class ChangshaWinSplitCard { cards.addAll(result); } - // 辅助方法 public static void removeConsecutivePairs1(List cards) { if (cards == null || cards.size() < 2) { @@ -287,9 +331,9 @@ public class ChangshaWinSplitCard { } public static List qubianzhang(List cards) { - List result = new ArrayList<>(); + List result = new ArrayList<>(); for (int i = 0; i < cards.size(); i++) { - if (cards.get(i)%100 == 1||cards.get(i)%100 == 9) { + if (cards.get(i) % 100 == 1 || cards.get(i) % 100 == 9) { result.add(cards.get(i)); } } @@ -315,7 +359,7 @@ public class ChangshaWinSplitCard { if (!toRemove[j]) { // 如果这张牌还没被标记删除 int diff = sorted.get(j) - sorted.get(i); - if (diff == 2 && sorted.size()>2) { + if (diff == 2 && sorted.size() > 2) { // 找到隔张,标记删除 toRemove[i] = true; toRemove[j] = true; @@ -351,12 +395,49 @@ public class ChangshaWinSplitCard { cards.addAll(result); } + public static void haveBetween(List cards, List cardInHand) { + if (cards.size() <= 1 || cardInHand.size() <= 1) { + return; + } + + // 创建要删除的牌列表 + Set toRemove = new HashSet<>(); + + // 遍历手牌中的每一张牌 + for (int handCard : cardInHand) { + // 检查cards中是否有与手牌形成靠章的牌 + for (int card : cards) { + // 定义靠章规则:相同、相邻或隔一张 + int diff = Math.abs(card - handCard); + if (diff == 1 || diff == 2) { + toRemove.add(card); + } + } + } + + // 只有当cards中还有多于1张牌时才执行删除 + if (cards.size() - toRemove.size() > 0) { + cards.removeAll(toRemove); + + } + + // 可选:打印信息 + if (!toRemove.isEmpty()) { + System.out.println("删除的牌: " + toRemove); + System.out.println("cards剩余: " + cards); + } + } + // 从二维数组counts还原到手牌列表 private static List convertCountToCards(int[][] counts) { List cardInHand = new ArrayList<>(); + // counts数组结构:[类型索引][牌值] + // 类型索引: 0=万, 1=筒, 2=条, 3=风, 4=箭 (根据您的编码规则) + // 牌值: 1-9表示牌面值 + for (int suitIdx = 0; suitIdx < counts.length; suitIdx++) { - int suit = suitIdx + 1; + int suit = suitIdx + 1; // 还原百位数 (1,2,3,4,5) for (int value = 1; value < counts[suitIdx].length; value++) { int count = counts[suitIdx][value]; @@ -371,6 +452,16 @@ public class ChangshaWinSplitCard { return cardInHand; } + public static int ckeckOutCard(List cardInhand) { + int card = 0; + Collections.sort(cardInhand); + System.out.println("手牌:" + cardInhand); + Map map = new HashMap(); + checkNormalHu(cardInhand, map); + + return card; + } + public static List checktingpai(List cardhand) { List tpcards = new ArrayList<>(); List tmphc = cardhand; @@ -382,7 +473,7 @@ public class ChangshaWinSplitCard { WinCard win = new WinCard(tmphc, j); if (win.tryWin()) { if (!tpcards.contains(tmpcard)) { - tpcards.add(tmpcard); + tpcards.add(tmpcard); } } } @@ -390,7 +481,7 @@ public class ChangshaWinSplitCard { WinCard win = new WinCard(tmphc, j); if (win.tryWin()) { if (!tpcards.contains(tmpcard)) { - tpcards.add(tmpcard); + tpcards.add(tmpcard); } } } @@ -399,22 +490,21 @@ public class ChangshaWinSplitCard { return tpcards; } - - public static boolean isJiangPai(int card){ - if (card%100==2||card%100==5||card%100==8){ + public static boolean isJiangPai(int card) { + if (card % 100 == 2 || card % 100 == 5 || card % 100 == 8) { return true; } return false; } - public static int checkduijiang(List cardInHand,Map> map) { + public static int checkduijiang(List cardInHand, Map> map) { Map countMap = new HashMap<>(); for (Integer item : cardInHand) { countMap.put(item, countMap.getOrDefault(item, 0) + 1); } int jiangnum = 0; for (int key : countMap.keySet()) { - if (isJiangPai(key)&&countMap.get(key)>=2){ + if (isJiangPai(key) && countMap.get(key) >= 2) { jiangnum++; List tmpI = new ArrayList<>(); tmpI.add(key); @@ -427,48 +517,43 @@ public class ChangshaWinSplitCard { // 分析最优出牌 public static List analyzeBestDiscard(List cardInHand) { - //听牌 - //返回要打的牌,打后可以听牌 + // 听牌 + // 返回要打的牌,打后可以听牌 List checktingpai = checktingpai(cardInHand); System.out.println("打出这种牌后可以听牌 " + checktingpai); Map map = new HashMap<>(); - Map> jmap = new HashMap<>();//对将map - //先定将,再做分析 - /* int jiangnum = checkduijiang(cardInHand,jmap); - System.out.println(jmap.get("jiangcard").get(0)); - if (jiangnum==1){ - //如果只有一对将 - //去将 后判断方案 - List tmphc = new ArrayList<>(); - tmphc.addAll(cardInHand); - Util.removeCard(tmphc,jmap.get("jiangcard").get(0),2); - Map tmap = new HashMap<>(); - checkNormalHu(tmphc, tmap); - - //不去将 判断 - - Map tmap2 = new HashMap<>(); - System.out.println(cardInHand); - checkNormalHu(cardInHand, tmap2); - System.out.println(tmap2); - - - - - - }else if(jiangnum>1){ - - }else{ - - }*/ + Map> jmap = new HashMap<>();// 对将map + // 先定将,再做分析 + /* + * int jiangnum = checkduijiang(cardInHand,jmap); + * System.out.println(jmap.get("jiangcard").get(0)); if (jiangnum==1){ //如果只有一对将 + * //去将 后判断方案 List tmphc = new ArrayList<>(); tmphc.addAll(cardInHand); + * Util.removeCard(tmphc,jmap.get("jiangcard").get(0),2); Map + * tmap = new HashMap<>(); checkNormalHu(tmphc, tmap); + * + * //不去将 判断 + * + * Map tmap2 = new HashMap<>(); System.out.println(cardInHand); + * checkNormalHu(cardInHand, tmap2); System.out.println(tmap2); + * + * + * + * + * + * }else if(jiangnum>1){ + * + * }else{ + * + * } + */ checkNormalHu(cardInHand, map); List suggested = (List) map.get("cardResiue"); - //返回要打的牌,打后可以听牌 + // 返回要打的牌,打后可以听牌 List zuizhongchupai = new ArrayList<>(); - //如果打出然后可以听牌,跟递归判断出来的牌一样,优先打出这张 + // 如果打出然后可以听牌,跟递归判断出来的牌一样,优先打出这张 if (checktingpai.size() > 0) { for (Integer integer : checktingpai) { for (Integer integer1 : suggested) { @@ -479,19 +564,17 @@ public class ChangshaWinSplitCard { } } - - //推荐打几个牌都能听牌,需要判断打哪个听的牌更多 + // 推荐打几个牌都能听牌,需要判断打哪个听的牌更多 if (checktingpai.size() > 1 && zuizhongchupai.size() == 0) { zuizhongchupai.addAll(checktingpai); } - - //如果判断听牌和递归出来的牌不一样 优先以听牌为准 + // 如果判断听牌和递归出来的牌不一样 优先以听牌为准 if (zuizhongchupai.size() == 0) { zuizhongchupai.addAll(checktingpai); } - //如果判断最后打出牌还未听牌,就用递归判断的牌 + // 如果判断最后打出牌还未听牌,就用递归判断的牌 if (zuizhongchupai.size() == 0) { zuizhongchupai.addAll(suggested); } @@ -628,11 +711,15 @@ public class ChangshaWinSplitCard { // 牌的优先级(数字越小优先级越高) private static int getCardPriority(int value) { - if (value == 9) return 1; - if (value == 1) return 2; - if (value == 2 || value == 8) return 3; // 靠近边张 - if (value >= 3 && value <= 7) return 4; // 中间牌 - return 5; // 其他 + if (value == 9) + return 1; + if (value == 1) + return 2; + if (value == 2 || value == 8) + return 3; // 靠近边张 + if (value >= 3 && value <= 7) + return 4; // 中间牌 + return 5; // 其他 } public static Integer selectBestCardRemove258(List cards) { @@ -677,14 +764,14 @@ public class ChangshaWinSplitCard { // 检测是否满足258做将的条件 private static boolean is258Jiang(int card) { // 提取牌的类型和值 - int type = card / 100; // 百位数:1-万,2-筒,3-条,4-风,5-箭 + int type = card / 100; // 百位数:1-万,2-筒,3-条,4-风,5-箭 int value = card % 100; // 个位数:牌面值 // 只有万、筒、条有258做将的限制 if (type >= 1 && type <= 3) { // 258做将:二万(102)、五万(105)、八万(108) - // 二筒(202)、五筒(205)、八筒(208) - // 二条(302)、五条(305)、八条(308) + // 二筒(202)、五筒(205)、八筒(208) + // 二条(302)、五条(305)、八条(308) return value == 2 || value == 5 || value == 8; } return false; @@ -712,7 +799,6 @@ public class ChangshaWinSplitCard { } } - // 都没有,返回第一张 return cards.get(0); } @@ -734,7 +820,6 @@ public class ChangshaWinSplitCard { // test1.add(101); // test1.add(101); - // test1.add(208); // test1.add(207); // test1.add(205); @@ -747,8 +832,6 @@ public class ChangshaWinSplitCard { // test1.add(106); // test1.add(205); - - // test1.add(205); // test1.add(203); // test1.add(202); @@ -758,7 +841,6 @@ public class ChangshaWinSplitCard { // test1.add(106); // test1.add(105); - // test1.add(201); // test1.add(107); // test1.add(107); @@ -779,37 +861,37 @@ public class ChangshaWinSplitCard { // test1.add(209); // test1.add(209); - - // // - test1.add(206); - test1.add(205); - test1.add(204); - test1.add(203); - test1.add(202); test1.add(209); - test1.add(201); - test1.add(108); + test1.add(208); + test1.add(208); + test1.add(207); + test1.add(205); test1.add(107); - test1.add(106); - + test1.add(107); + test1.add(105); test1.add(104); + test1.add(103); + + test1.add(103); test1.add(103); test1.add(102); - test1.add(101); + test1.add(104); // test1.add(103); // test1.add(102); - - System.out.println("手牌:" + test1); List bestDiscard = analyzeBestDiscard(test1); // Integer integer = selectBestCardByPriority(bestDiscard); Integer integer1 = selectBestCardRemove258(bestDiscard); - System.out.println("ww" +integer1); + Map mapSS = new HashMap<>(); + checkNormalHu(test1, mapSS); + System.out.println("map:" + mapSS); + + System.out.println("ww" + integer1); // if (!bestDiscard.isEmpty()) { // System.out.println("建议出牌:" + bestDiscard.get(0)); // } else { diff --git a/libs/robot_common/src/main/java/taurus/util/Paixing.java b/libs/robot_common/src/main/java/taurus/util/Paixing.java index 3b523b0..88afdc1 100644 --- a/libs/robot_common/src/main/java/taurus/util/Paixing.java +++ b/libs/robot_common/src/main/java/taurus/util/Paixing.java @@ -37,23 +37,28 @@ public class Paixing { List opCards = new java.util.ArrayList<>(); //opCards.add(new OpCard(RuleWeight.TYPE_PONG, 109)); //opCards.add(new OpCard(RuleWeight.TYPE_PONG, 209)); - cardInhand.add(207); - cardInhand.add(207); - cardInhand.add(202); - cardInhand.add(202); - cardInhand.add(202); - cardInhand.add(109); + cardInhand.add(206); + cardInhand.add(206); + cardInhand.add(206); + cardInhand.add(205); + cardInhand.add(101); + //cardInhand.add(204); - cardInhand.add(109); - cardInhand.add(109); + cardInhand.add(107); + cardInhand.add(107); cardInhand.add(104); cardInhand.add(104); - cardInhand.add(102); - cardInhand.add(102); + cardInhand.add(101); + cardInhand.add(101); - cardInhand.add(102); + cardInhand.add(101); - //System.out.println(tingKongCheck( opCards,cardInhand,109,false)); + List chi = new ArrayList<>(); + List peng = new ArrayList<>(); + List gang = new ArrayList<>(); + + + System.out.println(tingCheck( cardInhand,chi,peng,gang)); } private final static boolean quanqiuren(List opCards,List cardInhand, int drawCard) { diff --git a/majiang/changsha/game_mj_cs/.idea/.gitignore b/majiang/changsha/game_mj_cs/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/majiang/changsha/game_mj_cs/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/majiang/changsha/game_mj_cs/.idea/compiler.xml b/majiang/changsha/game_mj_cs/.idea/compiler.xml new file mode 100644 index 0000000..2656d33 --- /dev/null +++ b/majiang/changsha/game_mj_cs/.idea/compiler.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/majiang/changsha/game_mj_cs/.idea/encodings.xml b/majiang/changsha/game_mj_cs/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/majiang/changsha/game_mj_cs/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/majiang/changsha/game_mj_cs/.idea/jarRepositories.xml b/majiang/changsha/game_mj_cs/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/majiang/changsha/game_mj_cs/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/majiang/changsha/game_mj_cs/.idea/misc.xml b/majiang/changsha/game_mj_cs/.idea/misc.xml new file mode 100644 index 0000000..d5cd614 --- /dev/null +++ b/majiang/changsha/game_mj_cs/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/majiang/changsha/game_mj_cs/.idea/vcs.xml b/majiang/changsha/game_mj_cs/.idea/vcs.xml new file mode 100644 index 0000000..c2365ab --- /dev/null +++ b/majiang/changsha/game_mj_cs/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/majiang/changsha/game_mj_cs/config/game-config.xml b/majiang/changsha/game_mj_cs/config/game-config.xml index c74e03e..d69efc0 100644 --- a/majiang/changsha/game_mj_cs/config/game-config.xml +++ b/majiang/changsha/game_mj_cs/config/game-config.xml @@ -1,10 +1,10 @@ - 192.168.14.1 - 192.168.14.1 - 8842 - 8841 + 192.168.0.18 + 192.168.0.18 + 6311 + 8840 10 true \ No newline at end of file diff --git a/majiang/changsha/game_mj_cs/config/taurus-core.xml b/majiang/changsha/game_mj_cs/config/taurus-core.xml index 1ba569f..38f536b 100644 --- a/majiang/changsha/game_mj_cs/config/taurus-core.xml +++ b/majiang/changsha/game_mj_cs/config/taurus-core.xml @@ -38,13 +38,13 @@ - - - - - - - + + + + + + + \ No newline at end of file diff --git a/majiang/changsha/game_mj_cs/config/taurus-permanent.xml b/majiang/changsha/game_mj_cs/config/taurus-permanent.xml index 172f728..8987fec 100644 --- a/majiang/changsha/game_mj_cs/config/taurus-permanent.xml +++ b/majiang/changsha/game_mj_cs/config/taurus-permanent.xml @@ -28,7 +28,7 @@ - + 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 cc42bef..6dac8af 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,15 +20,15 @@ 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() { - List list = Arrays.asList(109, 109, 109, 207, 207, 207, 105, 106, 107, 202, 202, 203, 204); - List list2 = Arrays.asList(209, 209, 209, 206, 206, 203, 203, 208, 208, 208, 202, 202, 202); - List list3 = Arrays.asList(208, 201, 202, 103, 107, 107, 205, 208, 209, 207, 109, 203, 208, 104, 210, 106, 104, 107, 202, 105, 206, 206, 109, 202, 209, 210, 104, 206, 107, 101, 108, 210, 203, 101, 102, 106, 209); + List list = Arrays.asList(207, 208, 207, 207, 207, 107, 107, 107, 104, 104, 202, 203, 204,202); + List list2 = Arrays.asList(103, 103, 103, 104, 107, 107, 202, 107, 206, 206, 202, 202, 202); + List list3 = Arrays.asList(207, 207, 104, 103, 107, 107, 205, 208, 209, 207, 109, 203, 208, 104, 210, 106, 104, 107, 202, 105, 206, 206, 109, 104, 209, 210, 104, 206, 107, 101, 108, 104, 203, 101, 104, 106, 209); this.cardList.addAll(list); this.cardList.addAll(list2); @@ -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/src/main/java/extend/mj/player/rule/RuleOtherWin.java b/majiang/changsha/game_mj_cs/src/main/java/extend/mj/player/rule/RuleOtherWin.java index 109e0a1..c32ccf4 100644 --- a/majiang/changsha/game_mj_cs/src/main/java/extend/mj/player/rule/RuleOtherWin.java +++ b/majiang/changsha/game_mj_cs/src/main/java/extend/mj/player/rule/RuleOtherWin.java @@ -41,7 +41,7 @@ public class RuleOtherWin implements IRuleBase { HashMap map = new HashMap(); if (ok != null) { for (int card : ok.drawList) { - if (Paixing.checkWin(map, player.opCardList, player.cardInhand, card,!no_jiang, room.difen_score)) { + if (Paixing.checkWin(map, player.opCardList, player.cardInhand, card,true, room.difen_score)) { Paixing.putWinCardType(map, WinCardType.GANGSHANGPAO, 1,WinCardType.WIN_TYPE_SCORE); map.remove(WinCardType.XIAOHU); result = true; diff --git a/majiang/changsha/game_mj_cs/src/main/java/extend/mj/player/rule/RuleSelfWin.java b/majiang/changsha/game_mj_cs/src/main/java/extend/mj/player/rule/RuleSelfWin.java index 53b7827..49f25a4 100644 --- a/majiang/changsha/game_mj_cs/src/main/java/extend/mj/player/rule/RuleSelfWin.java +++ b/majiang/changsha/game_mj_cs/src/main/java/extend/mj/player/rule/RuleSelfWin.java @@ -38,7 +38,8 @@ public class RuleSelfWin implements IRuleBase { HashMap map = new HashMap(); if (ok != null) { for (int card : ok.drawList) { - if (Paixing.checkWin(map, player.opCardList, player.cardInhand, card,!no_jiang, room.difen_score)) { + //jefe 杠上开花 + if (Paixing.checkWin(map, player.opCardList, player.cardInhand, card,true, room.difen_score)) { Paixing.putWinCardType(map, WinCardType.GANGSHANGHUA, 1,WinCardType.WIN_TYPE_SCORE); map.remove(WinCardType.XIAOHU); result = true; diff --git a/majiang/changsha/game_mj_cs/src/main/java/extend/mj/uitl/Paixing.java b/majiang/changsha/game_mj_cs/src/main/java/extend/mj/uitl/Paixing.java index ac5678c..c9f2f0f 100644 --- a/majiang/changsha/game_mj_cs/src/main/java/extend/mj/uitl/Paixing.java +++ b/majiang/changsha/game_mj_cs/src/main/java/extend/mj/uitl/Paixing.java @@ -406,6 +406,9 @@ public class Paixing { } else { WinCard win = new WinCard(cardInhand, drawCard); win.jiang = jiang; + + System.out.println("jiang"+jiang); + if (win.tryWin()) { putWinCardType(map, WinCardType.XIAOHU, 1, difen); return true; diff --git a/majiang/changsha/game_mj_cs/src/test/java/game_mj_changsha/Main.java b/majiang/changsha/game_mj_cs/src/test/java/game_mj_changsha/Main.java index f22b16d..bf03adf 100644 --- a/majiang/changsha/game_mj_cs/src/test/java/game_mj_changsha/Main.java +++ b/majiang/changsha/game_mj_cs/src/test/java/game_mj_changsha/Main.java @@ -7,10 +7,10 @@ import java.util.stream.Collectors; public class Main { public static void main(String[] args) { -//// TPServer.me().start(); + TPServer.me().start(); // // 统计每张牌出现的次数 // - List handCards = new ArrayList<>(); + /* List handCards = new ArrayList<>(); List resultList = new ArrayList<>(); handCards.add(103); handCards.add(103); @@ -161,7 +161,7 @@ public class Main { // return String.valueOf(maxCard); } - + */ } 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 12bb0c8..6c539e2 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/classes/extend/mj/player/rule/RuleOtherWin.class b/majiang/changsha/game_mj_cs/target/classes/extend/mj/player/rule/RuleOtherWin.class index d4f8688..8a20783 100644 Binary files a/majiang/changsha/game_mj_cs/target/classes/extend/mj/player/rule/RuleOtherWin.class and b/majiang/changsha/game_mj_cs/target/classes/extend/mj/player/rule/RuleOtherWin.class differ diff --git a/majiang/changsha/game_mj_cs/target/classes/extend/mj/player/rule/RuleSelfWin.class b/majiang/changsha/game_mj_cs/target/classes/extend/mj/player/rule/RuleSelfWin.class index 94e98c8..c58871d 100644 Binary files a/majiang/changsha/game_mj_cs/target/classes/extend/mj/player/rule/RuleSelfWin.class and b/majiang/changsha/game_mj_cs/target/classes/extend/mj/player/rule/RuleSelfWin.class differ diff --git a/majiang/changsha/game_mj_cs/target/classes/extend/mj/uitl/Paixing.class b/majiang/changsha/game_mj_cs/target/classes/extend/mj/uitl/Paixing.class index fe3be43..a92f741 100644 Binary files a/majiang/changsha/game_mj_cs/target/classes/extend/mj/uitl/Paixing.class and b/majiang/changsha/game_mj_cs/target/classes/extend/mj/uitl/Paixing.class differ diff --git a/majiang/changsha/game_mj_cs/target/game.jar b/majiang/changsha/game_mj_cs/target/game.jar index 2dbfd78..665e626 100644 Binary files a/majiang/changsha/game_mj_cs/target/game.jar and b/majiang/changsha/game_mj_cs/target/game.jar differ diff --git a/majiang/changsha/game_mj_cs/target/maven-archiver/pom.properties b/majiang/changsha/game_mj_cs/target/maven-archiver/pom.properties index e3996ad..02c4c3f 100644 --- a/majiang/changsha/game_mj_cs/target/maven-archiver/pom.properties +++ b/majiang/changsha/game_mj_cs/target/maven-archiver/pom.properties @@ -1,5 +1,3 @@ -#Generated by Maven -#Sat Dec 20 22:45:11 CST 2025 -version=1.0.0 -groupId=com.game artifactId=game_mj_changsha +groupId=com.game +version=1.0.0 diff --git a/majiang/changsha/game_mj_cs/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/majiang/changsha/game_mj_cs/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 5a6dfe6..6fea9d9 100644 --- a/majiang/changsha/game_mj_cs/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/majiang/changsha/game_mj_cs/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,64 +1,64 @@ -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleSelfOpenKong.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\PlayerRuleManager.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PRPongState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PRPongOpenKongState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\WinCardType.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PROtherKongState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PROtherWinState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RulePongOpenKong.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleSelfWin.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerKongWinState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerQSWinTipState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RulePong.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\RoomCard.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\EXScore.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\QSLog.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\EXGameController.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleOtherKong.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleZTWin.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\room\state\EXRoomStartGameState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerTianTingTipState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\SettleLog.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerDiscardState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerTipState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RulePongKong.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PROtherOpenKongState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\Config.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PRSelfOpenKongState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleOtherWin.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\CardNiao.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\OpenKong.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerWaitKongWinState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleHaidi.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\uitl\Paixing.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\room\state\EXRoomSetpState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\RuleWeight.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerZTWinTipState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\tip\Action.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleQSWin.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleSelfKong.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerDrawTipState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerDisCardTipState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PRChowState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerOpenKongState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerDrawState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\EXRoom.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\EXPlayer.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleOtherOpenKong.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerPiaoNiaoTipState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\uitl\WinCard.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PRSelfWinState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\room\state\EXRoomDealState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\EXPlayBack.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerWaitState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerHaidiTipState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PRPongKongState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\EXActionEvent.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\uitl\CardUtil.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\EXMainServer.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\tip\IRuleBase.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleChow.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PRSelfKongState.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\tip\TipManager.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\tip\Tip.java -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\OpCard.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleHaidi.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleQSWin.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PROtherOpenKongState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\uitl\Paixing.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleChow.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerQSWinTipState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PRSelfKongState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\SettleLog.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RulePong.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RulePongKong.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\EXMainServer.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\EXPlayBack.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\room\state\EXRoomStartGameState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\tip\Tip.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerDisCardTipState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleSelfKong.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PRChowState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerDrawState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\CardNiao.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PROtherWinState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\OpenKong.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerHaidiTipState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerKongWinState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerTipState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\EXPlayer.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PRSelfOpenKongState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerTianTingTipState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\tip\TipManager.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\OpCard.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerDiscardState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleOtherWin.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleSelfWin.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PRSelfWinState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\PlayerRuleManager.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\uitl\WinCard.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleZTWin.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PRPongState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PRPongOpenKongState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RulePongOpenKong.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleSelfOpenKong.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\room\state\EXRoomSetpState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\uitl\CardUtil.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerZTWinTipState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerOpenKongState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\QSLog.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PRPongKongState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\RoomCard.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\EXRoom.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\EXActionEvent.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleOtherOpenKong.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\EXScore.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rule\RuleOtherKong.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerPiaoNiaoTipState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerWaitState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\RuleWeight.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\room\state\EXRoomDealState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\tip\IRuleBase.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\Config.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\WinCardType.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\tip\Action.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerDrawTipState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\state\EXPlayerWaitKongWinState.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\EXGameController.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\main\java\extend\mj\player\rulestate\PROtherKongState.java diff --git a/majiang/changsha/game_mj_cs/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/majiang/changsha/game_mj_cs/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst index 77466c9..919e6fe 100644 --- a/majiang/changsha/game_mj_cs/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +++ b/majiang/changsha/game_mj_cs/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -1 +1 @@ -D:\aga\ceshi\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\test\java\game_mj_changsha\Main.java +D:\robotpro\robot_ceshi\xtserver_anchou\majiang\changsha\game_mj_cs\src\test\java\game_mj_changsha\Main.java diff --git a/majiang/changsha/game_mj_cs/target/test-classes/game_mj_changsha/Main.class b/majiang/changsha/game_mj_cs/target/test-classes/game_mj_changsha/Main.class index b6694c7..4bb6ec9 100644 Binary files a/majiang/changsha/game_mj_cs/target/test-classes/game_mj_changsha/Main.class and b/majiang/changsha/game_mj_cs/target/test-classes/game_mj_changsha/Main.class differ