71 lines
1.4 KiB
Go
71 lines
1.4 KiB
Go
package poker
|
|
|
|
type HEPokerHand struct {
|
|
Cards Cards
|
|
HandScore HandScore
|
|
}
|
|
|
|
type HandScoreType uint8
|
|
type HandScoreRanking Rank
|
|
|
|
type HandScore struct {
|
|
Type HandScoreType
|
|
Ranking HandScoreRanking
|
|
Kickers Cards
|
|
Description string
|
|
}
|
|
|
|
const (
|
|
HIGH_CARD HandScoreType = 0
|
|
ONE_PAIR HandScoreType = 1
|
|
TWO_PAIR HandScoreType = 2
|
|
SET HandScoreType = 3
|
|
STRAIGHT HandScoreType = 4
|
|
FLUSH HandScoreType = 5
|
|
FULL_HOUSE HandScoreType = 6
|
|
QUADS HandScoreType = 7
|
|
STRAIGHT_FLUSH HandScoreType = 8
|
|
)
|
|
|
|
func (self *HandScore) BeatsHand(v *HandScore) bool {
|
|
panic("not implemented")
|
|
}
|
|
|
|
func (self *HEPokerHand) IsReducedYet() bool {
|
|
if len(self.Cards) == 5 {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (self *HEPokerHand) IsPair() bool {
|
|
}
|
|
|
|
func (self *HEPokerHand) IsTwoPair() bool {
|
|
}
|
|
|
|
func (self *HEPokerHand) IsSet() bool {
|
|
}
|
|
|
|
func (self *HEPokerHand) IsStraight() bool {
|
|
}
|
|
|
|
func (self *HEPokerHand) IsFlush() bool {
|
|
}
|
|
|
|
func (self *HEPokerHand) IsFullHouse() bool {
|
|
}
|
|
|
|
func (self *HEPokerHand) ScoreHand() *HandScore {
|
|
|
|
}
|
|
|
|
func scoreHEPokerHand(input Cards) *HEPokerHand {
|
|
// this takes a list of pointers to 7 cards, permutes them into every
|
|
// possible five-card hand, by removing each in turn and recursing to
|
|
// itself, and then returns the best one as an *HEPokerHand
|
|
// out of all possible five-card permutations.
|
|
|
|
return 1
|
|
}
|