Files
vRp.CD2g_test/game/poker/hand.go
T
2023-06-25 11:15:50 +08:00

37 lines
836 B
Go

package poker
// HandHandle 扑克牌型验证函数
type HandHandle func(poker *Poker, cards []Card) bool
// HandPairs 对子
func HandPairs() HandHandle {
return func(poker *Poker, cards []Card) bool {
return len(cards) == 2 && cards[0].EqualPoint(cards[1])
}
}
// HandFlushPairs 同花对子
func HandFlushPairs() HandHandle {
return func(poker *Poker, cards []Card) bool {
if len(cards) != 2 {
return false
}
card1, card2 := cards[0], cards[1]
return card1.Equal(card2)
}
}
// HandSingle 单牌
func HandSingle() HandHandle {
return func(poker *Poker, cards []Card) bool {
return len(cards) == 1
}
}
// HandThreeOfKind 三张
func HandThreeOfKind() HandHandle {
return func(poker *Poker, cards []Card) bool {
return len(cards) == 3 && cards[0].EqualPoint(cards[1]) && cards[1].EqualPoint(cards[2])
}
}