84 lines
1.8 KiB
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
|
|
}
|