go-poker/hand.go

84 lines
1.8 KiB
Go

package poker
import "errors"
type HEPokerHand struct {
HoleCards Cards
CommCardsNotUsed Cards
CommCardsUsed Cards
CommCardsAll Cards
HandScore HandScore
}
type HandScoreType uint8
type HandScoreRanking Rank
type HandScore struct {
Type HandScoreType
PrimaryRanking HandScoreRanking
SecondaryRanking 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) IsPair() bool {
panic("not implemented")
return false
}
func (self *HEPokerHand) IsTwoPair() bool {
panic("not implemented")
return false
}
func (self *HEPokerHand) IsSet() bool {
panic("not implemented")
return false
}
func (self *HEPokerHand) IsStraight() bool {
panic("not implemented")
return false
}
func (self *HEPokerHand) IsFlush() bool {
panic("not implemented")
return false
}
func (self *HEPokerHand) IsFullHouse() bool {
panic("not implemented")
return false
}
// this takes a list of pointers to 5 or more 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.
func ScoreCardsForHoldEm(input *Cards) (*HEPokerHand, error) {
if len(*input) < 5 {
return nil, errors.New("need at least 5 cards for an HEPokerHand")
}
panic("not implemented")
}
func (self *HEPokerHand) ScoreHand() *HandScore {
return nil
}