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