package algorithm

// 扑克牌52张，分别包含普通牌52张 2-10、J、Q、K、A （以上每种牌4个花色 黑桃、梅花、红心、方块）
var CARDS = []byte{
	//方块
	0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E,
	//梅花
	0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E,
	//红桃
	0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E,
	//黑桃
	0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E,
}

const (
	CARDRANK = 13
	SUITSIZE = 4
	TOTAL    = 13 * 4

	TYPE_LEN  = 5 // 牌型长度
	CARDS_LEN = 7 // 河牌+底牌长度
)

//牌型大小：
//1、皇家同花顺＞同花顺＞四条＞葫芦＞同花＞顺子＞三条＞两队＞一对＞单牌
//2、牌点从大到小为：A、K、Q、J、10、9、8、7、6、5、4、3、2，各花色不分大小。
//3、同种牌型，对子时比对子的大小，其它牌型比最大的牌张，如最大牌张相同则比第二大的牌张，以此类推，都相同时为相同。
//4、A 可以组顺子 A、1、2、3、4、5  也可以组顺子 10、J、Q、K、A  同花顺同理
//所有牌型如下：
const (
	ROYAL_FLUSH    uint8= 10  // 皇家同花顺：同一花色的最大顺子。（最大牌：A-K-Q-J-10）
	STRAIGHT_FLUSH uint8= 9  // 同花顺：同一花色的顺子。（最大牌：K-Q-J-10-9 最小牌：A-2-3-4-5）
	FOUR           uint8= 8 // 四条：四同张加单张。（最大牌：A-A-A-A-K 最小牌：2-2-2-2-3）
	FULL_HOUSE     uint8= 7  // 葫芦（豪斯）：三同张加对子。（最大牌：A-A-A-K-K 最小牌：2-2-2-3-3）
	FLUSH          uint8= 6  // 同花：同一花色。（最大牌：A-K-Q-J-9 最小牌：2-3-4-5-7）
	STRAIGHT       uint8= 5 // 顺子：花色不一样的顺子。（最大牌：A-K-Q-J-10 最小牌：A-2-3-4-5）
	THREE          uint8= 4  // 三条：三同张加两单张。（最大牌：A-A-A-K-Q 最小牌：2-2-2-3-4）
	TWO_PAIR       uint8= 3  // 两对：（最大牌：A-A-K-K-Q 最小牌：2-2-3-3-4）
	ONE_PAIR       uint8= 2  // 一对：（最大牌：A-A-K-Q-J 最小牌：2-2-3-4-5）
	HIGH_CARD      uint8= 1 // 高牌：（最大牌：A-K-Q-J-9 最小牌：2-3-4-5-7）
)
