处理红中胡牌问题
parent
2093f434df
commit
950f739e0a
|
|
@ -303,6 +303,7 @@ public class HuNanHongZhong {
|
||||||
for (int i = 0; i < cardList.size(); i++) {
|
for (int i = 0; i < cardList.size(); i++) {
|
||||||
hongZhongCardInhand.add(cardList.getInt(i));
|
hongZhongCardInhand.add(cardList.getInt(i));
|
||||||
}
|
}
|
||||||
|
System.out.println("初始化手牌" + hongZhongCardInhand);
|
||||||
if (hongZhongCardInhand.size() > 13) {
|
if (hongZhongCardInhand.size() > 13) {
|
||||||
outCard(client);
|
outCard(client);
|
||||||
log.info("机器人:{}为庄家,需要出牌,牌为:{}", param.getInt("seat"), hongZhongCardInhand.get(0));
|
log.info("机器人:{}为庄家,需要出牌,牌为:{}", param.getInt("seat"), hongZhongCardInhand.get(0));
|
||||||
|
|
@ -325,17 +326,32 @@ public class HuNanHongZhong {
|
||||||
int type = 0;
|
int type = 0;
|
||||||
int opcard = 0;
|
int opcard = 0;
|
||||||
ITObject params = TObject.newInstance();
|
ITObject params = TObject.newInstance();
|
||||||
|
System.out.println("机器人杠碰胡参数 " + tipList);
|
||||||
|
//先优先胡牌
|
||||||
if (tipList != null && tipList.size() > 0) {
|
if (tipList != null && tipList.size() > 0) {
|
||||||
|
// 先查找 type == 6 的对象
|
||||||
|
for (int i = 0; i < tipList.size(); i++) {
|
||||||
|
TObject item = (TObject) tipList.get(i).getObject();
|
||||||
|
int currentType = item.getInt("type");
|
||||||
|
if (currentType == 6) {
|
||||||
|
id = item.getInt("id");
|
||||||
|
type = currentType;
|
||||||
|
opcard = item.getTArray("opcard").getInt(0);
|
||||||
|
break; // 找到后立即退出循环
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果没有找到 type==6 的对象,则取第一个
|
||||||
|
if (type != 6 && tipList.size() > 0) {
|
||||||
TObject firstTip = (TObject) tipList.get(0).getObject();
|
TObject firstTip = (TObject) tipList.get(0).getObject();
|
||||||
id = firstTip.getInt("id");
|
id = firstTip.getInt("id");
|
||||||
type = firstTip.getInt("type");
|
type = firstTip.getInt("type");
|
||||||
opcard = firstTip.getTArray("opcard").getInt(0);
|
opcard = firstTip.getTArray("opcard").getInt(0);
|
||||||
|
}
|
||||||
|
|
||||||
log.debug("id ++ {}", id);
|
log.debug("id ++ {}", id);
|
||||||
log.debug("type ++ {}", type);
|
log.debug("type ++ {}", type);
|
||||||
}
|
}
|
||||||
//弃 是根据算法选择是否要弃掉 不进行碰杠胡
|
|
||||||
//params.putInt("qi", 0);
|
|
||||||
//params.putInt("id", 0);
|
|
||||||
|
|
||||||
//执行碰牌
|
//执行碰牌
|
||||||
if (type == 2) {
|
if (type == 2) {
|
||||||
|
|
@ -343,7 +359,7 @@ public class HuNanHongZhong {
|
||||||
if (shouldPong(opcard)) {
|
if (shouldPong(opcard)) {
|
||||||
params.putString("session", session + "," + token);
|
params.putString("session", session + "," + token);
|
||||||
params.putInt("qi", 0);
|
params.putInt("qi", 0);
|
||||||
params.putInt("id", 1);
|
params.putInt("id", id);
|
||||||
Util.removeCard(hongZhongCardInhand, opcard, 2);
|
Util.removeCard(hongZhongCardInhand, opcard, 2);
|
||||||
log.info("执行碰牌并删除碰的牌");
|
log.info("执行碰牌并删除碰的牌");
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -357,35 +373,31 @@ public class HuNanHongZhong {
|
||||||
} else if (type == 6) {
|
} else if (type == 6) {
|
||||||
params.putString("session", session + "," + token);
|
params.putString("session", session + "," + token);
|
||||||
params.putInt("qi", 0);
|
params.putInt("qi", 0);
|
||||||
params.putInt("id", 1);
|
params.putInt("id", id); //改为发送id,之前发送的是写死的1,胡牌的id是2
|
||||||
log.info("执行胡牌");
|
log.info("执行胡牌");
|
||||||
//执行吃杠
|
//执行吃杠
|
||||||
} else if (type == 3) {
|
} else if (type == 3) {
|
||||||
params.putString("session", session + "," + token);
|
params.putString("session", session + "," + token);
|
||||||
params.putInt("qi", 0);
|
params.putInt("qi", 0);
|
||||||
params.putInt("id", 1);
|
params.putInt("id", id);
|
||||||
Util.removeCard(hongZhongCardInhand, opcard, 3);
|
Util.removeCard(hongZhongCardInhand, opcard, 3);
|
||||||
log.info("执行吃杠");
|
log.info("执行吃杠");
|
||||||
//执行自杠
|
//执行自杠
|
||||||
} else if (type == 4) {
|
} else if (type == 4) {
|
||||||
params.putString("session", session + "," + token);
|
params.putString("session", session + "," + token);
|
||||||
params.putInt("qi", 0);
|
params.putInt("qi", 0);
|
||||||
params.putInt("id", 1);
|
params.putInt("id", id);
|
||||||
Util.removeCard(hongZhongCardInhand, opcard, 4);
|
Util.removeCard(hongZhongCardInhand, opcard, 4);
|
||||||
log.info("执行自杠");
|
log.info("执行自杠");
|
||||||
// 碰后补杠
|
// 碰后补杠
|
||||||
} else if (type == 5) {
|
} else if (type == 5) {
|
||||||
params.putString("session", session + "," + token);
|
params.putString("session", session + "," + token);
|
||||||
params.putInt("qi", 0);
|
params.putInt("qi", 0);
|
||||||
params.putInt("id", 1);
|
params.putInt("id", id);
|
||||||
Util.removeCard(hongZhongCardInhand, opcard, 1);
|
Util.removeCard(hongZhongCardInhand, opcard, 1);
|
||||||
log.info("执行碰后补杠");
|
log.info("执行碰后补杠");
|
||||||
}
|
}
|
||||||
|
|
||||||
// cardInhand.remove(0);
|
|
||||||
// cardInhand.remove(1);
|
|
||||||
log.info("执行id为:{}的操作", 0);
|
|
||||||
|
|
||||||
//使用线程池执行延迟动作
|
//使用线程池执行延迟动作
|
||||||
getBusinessThreadPool().execute(() -> {
|
getBusinessThreadPool().execute(() -> {
|
||||||
try {
|
try {
|
||||||
|
|
@ -422,6 +434,7 @@ public class HuNanHongZhong {
|
||||||
public String outCard(TaurusClient client) {
|
public String outCard(TaurusClient client) {
|
||||||
// 调用分离分析方法,将刻子、顺子、红中单独拎出后分析剩余牌
|
// 调用分离分析方法,将刻子、顺子、红中单独拎出后分析剩余牌
|
||||||
try {
|
try {
|
||||||
|
System.out.println("当前机器人手牌" + hongZhongCardInhand);
|
||||||
log.info("[HuNanHongZhong] 出牌前分离分析手牌结构...");
|
log.info("[HuNanHongZhong] 出牌前分离分析手牌结构...");
|
||||||
hongZhongSuanFaTest.separateAndAnalyzeHand(hongZhongCardInhand);
|
hongZhongSuanFaTest.separateAndAnalyzeHand(hongZhongCardInhand);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue