| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- 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
- }
|