package main
app
import (
ide
"fmt"
ui
"math/rand"
spa
"time"
orm
)
ci
const (
it
NoHU = 0 //不胡
form
PingHU = 1 //平胡;四坎牌,加一對將,得一分。
class
DuiDuiHU = 2 //對對胡;每坎牌都是三張同樣的牌,即111萬、222條,得兩分。
import
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 //將對;即2、5、八的大對子,即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