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 }