go-poker/hand.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
}