game_sync/api3th/common.go

80 lines
1.2 KiB
Go

package api3th
import "bytes"
// 牌数据转换
// 1 2 3 4 5 6 7 8 9 10 11 12 13 52 53 =>
// A 2 3 4 5 6 7 8 9 T J Q K B C
func CardValueToShowCard(cards []int32) string {
ret := bytes.NewBuffer([]byte{})
for _, v := range cards {
ret.WriteString(AIRecordMap[GetPoint(v)])
}
return ret.String()
}
// 扑克牌点数
func GetPoint(v int32) int32 {
if v >= 52 {
return v
}
return v%13 + 1
}
var AIRecordMap = map[int32]string{
53: "C",
52: "B",
1: "A",
2: "2",
3: "3",
4: "4",
5: "5",
6: "6",
7: "7",
8: "8",
9: "9",
10: "T",
11: "J",
12: "Q",
13: "K",
}
var AIPointMap = map[string]int32{
"D": 53,
"X": 52,
"C": 53,
"B": 52,
"A": 1,
"2": 2,
"3": 3,
"4": 4,
"5": 5,
"6": 6,
"7": 7,
"8": 8,
"9": 9,
"T": 10,
"J": 11,
"Q": 12,
"K": 13,
}
// 德州扑克接入的机器人接口需要的牌定义
// SHDC 黑红梅方
// 0:2S 1:3S ... 11:13S 12:1S
// 13:2H 14:3H ... 24:13H 25:1H
// 26:2D 27:3D ... 37:13D 38:1D
// 39:2C 40:3C ... 50:13C 51:1C
func DZPCardToAICard(card int32) int32 {
var ret int32
// 点数
if card%13 == 0 {
ret += 12
} else {
ret = card%13 - 1
}
// 花色
ret += (3 - card/13) * 13
return ret
}