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)。