package gamelogic import ( "fmt" "runtime/debug" "bet24.com/log" ) const ( CardType_Diamond = iota CardType_Club CardType_Heart CardType_Spade CardType_Invalid ) const ( CardValueJ = iota CardValueQ CardValueK CardValueA ) const ( CARD_COUNT = 16 // 牌数量 HOLD_CARD_COUNT = 4 // 手牌数量 ) var type_desc = []string{"♦", "♣", "♥", "♠", ""} var value_desc = []string{"J", "Q", "K", "A"} func isValidCard(card int) bool { return card >= 0 && card < CARD_COUNT } func getCardHex(card int) string { if !isValidCard(card) { return "n/a" } return fmt.Sprintf("%s%s", type_desc[getCardType(card)], value_desc[getCardValue(card)]) } func getCardsHex(cards []int) string { ret := "[" for _, v := range cards { ret += getCardHex(v) ret += " " } ret += "]" return ret } func getCardType(card int) int { if !isValidCard(card) { log.Debug("%s", debug.Stack()) return CardType_Invalid } return card / 4 } func getCardValue(card int) int { if !isValidCard(card) { log.Debug("%s", debug.Stack()) return -1 } return card % 4 }