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 }