71 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package pokercore
 | 
						|
 | 
						|
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 {
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
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) IsBoat() 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
 | 
						|
}
 |