随机数优化
This commit is contained in:
parent
f42dd2dd95
commit
b66bfa0209
@ -1,6 +1,7 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"server/game/mod/card"
|
||||
"server/game/mod/chess"
|
||||
"server/game/mod/decorate"
|
||||
limitedTimeEvent "server/game/mod/limited_time_event"
|
||||
@ -17,3 +18,7 @@ func (p *Player) GetDecorateMod() *decorate.Decorate {
|
||||
func (p *Player) GetLimitEventMod() *limitedTimeEvent.LimitedTimeEventMod {
|
||||
return p.PlayMod.getLimitedTimeEventMod()
|
||||
}
|
||||
|
||||
func (p *Player) GetCardMod() *card.CardMod {
|
||||
return p.PlayMod.getCardMod()
|
||||
}
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package GoUtil
|
||||
|
||||
import "math/rand"
|
||||
|
||||
func RandNum(start int, end int) int {
|
||||
if start > end {
|
||||
return 0
|
||||
@ -7,5 +9,5 @@ func RandNum(start int, end int) int {
|
||||
if start == end {
|
||||
return start
|
||||
}
|
||||
return start + GetRand().Intn(end-start+1)
|
||||
return start + rand.Intn(end-start+1)
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package GoUtil
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"reflect"
|
||||
"server/game/mod/item"
|
||||
"sort"
|
||||
@ -51,7 +52,7 @@ func RandPopSlice(slice []int) ([]int, int) {
|
||||
if slen == 0 {
|
||||
return slice, -1
|
||||
}
|
||||
Id := GetRand().Intn(slen)
|
||||
Id := rand.Intn(slen)
|
||||
Val := slice[Id]
|
||||
Slice2 := append(slice[0:Id], slice[Id+1:]...)
|
||||
return Slice2, Val
|
||||
@ -62,7 +63,7 @@ func RandSlice(slice []int) int {
|
||||
if slen == 0 {
|
||||
return 0
|
||||
}
|
||||
Id := GetRand().Intn(slen)
|
||||
Id := rand.Intn(slen)
|
||||
return slice[Id]
|
||||
}
|
||||
|
||||
@ -71,7 +72,7 @@ func RandItem(slice []*item.Item) *item.Item {
|
||||
if slen == 0 {
|
||||
return nil
|
||||
}
|
||||
Id := GetRand().Intn(slen)
|
||||
Id := rand.Intn(slen)
|
||||
return slice[Id]
|
||||
}
|
||||
|
||||
@ -84,7 +85,7 @@ func RandSliceNum(s []int, num int) []int {
|
||||
}
|
||||
|
||||
for i := 0; i < num; i++ {
|
||||
Id := GetRand().Intn(len(slice))
|
||||
Id := rand.Intn(len(slice))
|
||||
r = append(r, slice[Id])
|
||||
slice = append(slice[0:Id], slice[Id+1:]...)
|
||||
}
|
||||
@ -100,7 +101,7 @@ func RandSliceNum2(s []interface{}, num int) []interface{} {
|
||||
}
|
||||
|
||||
for i := 0; i < num; i++ {
|
||||
Id := GetRand().Intn(len(slice))
|
||||
Id := rand.Intn(len(slice))
|
||||
r = append(r, slice[Id])
|
||||
slice = append(slice[0:Id], slice[Id+1:]...)
|
||||
}
|
||||
@ -116,7 +117,7 @@ func RandSliceNumNonAdjacent(s []int, num int) []int {
|
||||
sort.Ints(slice)
|
||||
result := make([]int, 0, num)
|
||||
for len(result) < num {
|
||||
Id := GetRand().Intn(len(slice))
|
||||
Id := rand.Intn(len(slice))
|
||||
result = append(result, slice[Id])
|
||||
slice = SubAdjacentElemSlice(slice, Id)
|
||||
}
|
||||
@ -138,7 +139,7 @@ func RandStringSlice(slice []string) string {
|
||||
if slen == 0 {
|
||||
return ""
|
||||
}
|
||||
Id := GetRand().Intn(slen)
|
||||
Id := rand.Intn(slen)
|
||||
return slice[Id]
|
||||
}
|
||||
|
||||
@ -335,7 +336,7 @@ func PopStringArray(s []string) (string, []string) {
|
||||
|
||||
func ShuffleStringArray(s []string) []string {
|
||||
r := make([]string, len(s))
|
||||
perm := GetRand().Perm(len(s))
|
||||
perm := rand.Perm(len(s))
|
||||
for i, v := range perm {
|
||||
r[v] = s[i]
|
||||
}
|
||||
@ -344,7 +345,7 @@ func ShuffleStringArray(s []string) []string {
|
||||
|
||||
func ShuffleArray(s []int) []int {
|
||||
r := make([]int, len(s))
|
||||
perm := GetRand().Perm(len(s))
|
||||
perm := rand.Perm(len(s))
|
||||
for i, v := range perm {
|
||||
r[v] = s[i]
|
||||
}
|
||||
|
||||
@ -78,3 +78,14 @@ func TestFixUserData(t *testing.T) {
|
||||
}
|
||||
log.Debug("All accounts fixed")
|
||||
}
|
||||
|
||||
func TestRandInt(t *testing.T) {
|
||||
p1 := new(game.Player)
|
||||
p1.InitPlayer("3625212")
|
||||
CardMod := p1.GetCardMod()
|
||||
CardMod.CardLimit = true
|
||||
for i := 0; i < 20; i++ {
|
||||
cardid, _ := CardMod.OpenCardPack(5)
|
||||
log.Debug("cardid is %d", cardid)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user