标签:初始化 重复 fmt 牌型 WeiZhi Golang 99 108 随机
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
标签:初始化,重复,fmt,牌型,WeiZhi,Golang,99,108,随机
来源: https://blog.51cto.com/15060462/2638111
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。