37 lines
836 B
Go
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])
|
|
}
|
|
}
|