48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
package hundredyxx
|
|
|
|
import (
|
|
"math/rand"
|
|
"time"
|
|
)
|
|
|
|
type DiceBox struct {
|
|
first *rand.Rand
|
|
second *rand.Rand
|
|
third *rand.Rand
|
|
count int
|
|
Point [DICE_NUM]int32
|
|
}
|
|
|
|
var AllRoll = [][DICE_NUM]int32{}
|
|
|
|
func CreateDiceBox() *DiceBox {
|
|
return &DiceBox{
|
|
count: 0,
|
|
first: rand.New(rand.NewSource(rand.Int63n(time.Now().UnixNano()))),
|
|
second: rand.New(rand.NewSource(rand.Int63n(time.Now().UnixNano()))),
|
|
third: rand.New(rand.NewSource(rand.Int63n(time.Now().UnixNano()))),
|
|
Point: [DICE_NUM]int32{},
|
|
}
|
|
}
|
|
func (bb *DiceBox) Roll() {
|
|
if bb.count > 10 {
|
|
bb.first = rand.New(rand.NewSource(rand.Int63n(time.Now().UnixNano())))
|
|
bb.second = rand.New(rand.NewSource(rand.Int63n(time.Now().UnixNano())))
|
|
bb.third = rand.New(rand.NewSource(rand.Int63n(time.Now().UnixNano())))
|
|
bb.count = 0
|
|
}
|
|
bb.count++
|
|
bb.Point[0] = bb.first.Int31n(6)
|
|
bb.Point[1] = bb.second.Int31n(6)
|
|
bb.Point[2] = bb.third.Int31n(6)
|
|
}
|
|
|
|
func init() {
|
|
for i := int32(0); i < 6; i++ {
|
|
for j := int32(0); j < 6; j++ {
|
|
for k := int32(0); k < 6; k++ {
|
|
AllRoll = append(AllRoll, [DICE_NUM]int32{i, j, k})
|
|
}
|
|
}
|
|
}
|
|
} |