package main
import (
"fmt"
"math/rand"
"time"
)
const (
NoHU = 0 //不胡
PingHU = 1 //平胡;四坎牌,加一对将,得一分。
DuiDuiHU = 2 //对对胡;每坎牌都是三张一样的牌,即111万、222条,得两分。
QiangGangHU = 3 //抢杠胡;它人杠的时候,抢牌胡,得两分。
QingYiSe = 4 //清一色;全手牌是一种花色,即123条、567条、234 条、888条、99条,得三分。
YaoJiuPai = 5 //幺九牌;每坎牌都是一或九,即123条、123万、789条、789万、99万,得三分。
QiDui = 6 //七对;胡牌的时候是七对牌,即11万、22万、99万、44筒、66筒、88筒、99筒,得三分。
QingQiDui = 7 //清七对;在七对的基础上,有两对牌是四张一样的。(注意:此四张牌并不是杠的牌) 即11万、11万、99万、44筒、66筒、88筒、99筒,得四分。
QiDui2 = 8 //清对;一种花色的大对子。即111万、444万、222万、999万、66万,得四分。
JiangDui = 9 //将对;即二、五、八的大对子,即222万 555万 888万 222条 55筒,的四分。
TianHU = 10 //天胡;即刚码好牌就自然成胡,得8分。
DiHU = 11 //地胡;即刚打第一张牌就成胡,得8分。
)
var (
SiChuangMJArr = []int{
101, 102, 103, 104, 105, 106, 107, 108, 109, //#万
101, 102, 103, 104, 105, 106, 107, 108, 109,
101, 102, 103, 104, 105, 106, 107, 108, 109,
101, 102, 103, 104, 105, 106, 107, 108, 109,
201, 202, 203, 204, 205, 206, 207, 208, 209, //#饼
201, 202, 203, 204, 205, 206, 207, 208, 209,
201, 202, 203, 204, 205, 206, 207, 208, 209,
201, 202, 203, 204, 205, 206, 207, 208, 209,
301, 302, 303, 304, 305, 306, 307, 308, 309, //#条
301, 302, 303, 304, 305, 306, 307, 308, 309,
301, 302, 303, 304, 305, 306, 307, 308, 309,
301, 302, 303, 304, 305, 306, 307, 308, 309,
}
)
func RandInt64(min, max int64) int64 {
if min >= max || min == 0 || max == 0 {
return max
}
return rand.Int63n(max-min) + min
}
// 初始化发牌
func initFaPai() {
FaPaiCiShu := 53 // 初始化牌型 为循环随机53次;可能实际要大于53次,随机的次数在具体根据实际情况
SuiJiMap := make(map[int]int) // 记录随机数
for i := 0; i < FaPaiCiShu; i++ {
WeiZhi := int(RandInt64(1, 108))
//WeiZhi := rand.Intn(107)
_, ok := SuiJiMap[WeiZhi]
if ok {
fmt.Println("随机重复:", WeiZhi)
FaPaiCiShu++
continue
}
fmt.Println(WeiZhi)
SuiJiMap[WeiZhi] = WeiZhi
}
fmt.Println("循环次数", FaPaiCiShu)
}
func init() {
fmt.Println("entry init")
t1 := time.Now()
initFaPai()
elapsed := time.Since(t1)
fmt.Println("App elapsed: ", elapsed)
return
}
func main() {
return
}
复制代码
输出结果
entry init
93
35
103
42
23
随机重复: 103
97
随机重复: 42
76
107
2
102
59
95
55
36
87
54
随机重复: 36
19
90
68
30
66
62
77
52
41
46
随机重复: 59
79
随机重复: 90
随机重复: 59
24
22
85
89
16
7
随机重复: 46
随机重复: 35
58
100
随机重复: 77
37
105
94
随机重复: 58
随机重复: 93
28
70
随机重复: 2
45
64
43
17
27
随机重复: 90
67
10
随机重复: 105
随机重复: 35
91
随机重复: 103
随机重复: 76
随机重复: 105
75
3
随机重复: 37
86
99
随机重复: 2
80
循环次数 73
App elapsed: 1ms