Skip to content

CombinationType ​

牌型枚举,定义与具体游戏无关的通用扑克牌型。

概述 ​

CombinationType 位于 src/combination/CombinationType.ts,是一个字符串枚举。它仅定义与具体游戏无关的通用扑克牌型;各游戏的专属牌型(如斗地主的飞机、火箭)应在 src/plugins/<game>/combinations/ 中独立扩展,避免污染 Core。

枚举定义 ​

ts
enum CombinationType {
  SINGLE = 'SINGLE',
  PAIR = 'PAIR',
  TRIPLE = 'TRIPLE',
  FOUR_OF_A_KIND = 'FOUR_OF_A_KIND',
  STRAIGHT = 'STRAIGHT',
  UNKNOWN = 'UNKNOWN'
}

成员 ​

成员字符串值说明
SINGLE'SINGLE'单张
PAIR'PAIR'对子(两张点数相同的牌)
TRIPLE'TRIPLE'三张相同点数
FOUR_OF_A_KIND'FOUR_OF_A_KIND'四张相同点数
STRAIGHT'STRAIGHT'顺子(连续点数序列,长度由 CombinationDetector.minStraightLength 决定)
UNKNOWN'UNKNOWN'未识别或非法牌型,通常伴随 metadata.reason 说明原因

示例 ​

ts
import { CombinationType } from '../combination/CombinationType.js'
import type { CardCombination } from '../combination/CardCombination.js'

const pair: CardCombination = {
  type: CombinationType.PAIR,
  cards: [],
  rank: 5,
  value: 5
}

if (pair.type === CombinationType.UNKNOWN) {
  console.log('unrecognized combination')
}

注意事项 ​

  • 源码实际仅定义了上述 6 个成员。任务说明中提到的 FLUSH / FULL_HOUSE / STRAIGHT_FLUSH 在源码中不存在,请以本表为准。
  • 该枚举为字符串枚举(SINGLE = 'SINGLE' 而非数字枚举),可用于序列化或日志中直接展示牌型名。
  • 游戏专属牌型不应扩展此 Core 枚举,而应在插件层定义独立枚举(参见 src/plugins/doudizhu/combinations/DoudizhuCombinationType.ts)。