From 4b684bb524a65532490370df9161767aa74b13c8 Mon Sep 17 00:00:00 2001 From: zhl Date: Sat, 20 Feb 2021 14:51:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=BA=E5=99=A8=E4=BA=BA?= =?UTF-8?q?=E7=9A=84=E5=90=83=E7=89=8C=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/robot/Robot.ts | 2 +- src/robot/RobotClient.ts | 2 +- src/utils/assistant.util.ts | 11 ++++++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/robot/Robot.ts b/src/robot/Robot.ts index e2c76ee..97fc9cf 100644 --- a/src/robot/Robot.ts +++ b/src/robot/Robot.ts @@ -165,7 +165,7 @@ export class Robot { let self = this; let cardArr = [...self.player.cards.values()]; let cards = assistantUtil.checkTriple(cardArr, targetCard); - if (!cards) { + if (!cards || cards.length == 0) { return; } let cardIds: number[] = []; diff --git a/src/robot/RobotClient.ts b/src/robot/RobotClient.ts index 390e46e..890dd78 100644 --- a/src/robot/RobotClient.ts +++ b/src/robot/RobotClient.ts @@ -142,7 +142,7 @@ export class RobotClient implements Client { let self = this; let cardArr = [...self.selfPlayer.cards.values()]; let cards = assistantUtil.checkTriple(cardArr, targetCard); - if (!cards) { + if (!cards || cards.length == 0) { return; } let cardIds: number[] = []; diff --git a/src/utils/assistant.util.ts b/src/utils/assistant.util.ts index 6faa933..b2040c2 100644 --- a/src/utils/assistant.util.ts +++ b/src/utils/assistant.util.ts @@ -21,7 +21,6 @@ let assistantUtil = { * @param card 目标牌 */ checkTriple(cardArr: Card[], card?: Card): Card[] { - if (card) cardArr.push(card); let maxCount = card ? new GameEnv().otherEatCount : new GameEnv().selfEatCount; let pointMap: Map = new Map(); let cardIdSet: Set = new Set(); @@ -38,6 +37,16 @@ let assistantUtil = { } cardIdSet.add(c.number); } + if (card && (card.type == CardType.general || card.type == CardType.variable_unit)) { + if (pointMap.has(card.number)) { + let arr = pointMap.get(card.number); + arr.push(card); + pointMap.set(card.number, arr); + } else { + pointMap.set(card.number, [card]); + } + cardIdSet.add(card.number); + } let fetched = false; let result: Card[] = []; // 优先出对子