Selaa lähdekoodia

No longer re-seed rand with each array function

master
Noëlle Anthony 5 vuotta sitten
vanhempi
commit
cc2ca8fc13
1 muutettua tiedostoa jossa 0 lisäystä ja 37 poistoa
  1. 0
    37
      src/util/arrays.go

+ 0
- 37
src/util/arrays.go Näytä tiedosto

@@ -6,25 +6,16 @@ import (
"time"
)

// This doesn't work
// func Choice(ary ...interface{}) interface{} {
// rand.Seed(time.Now().UnixNano())
// l := len(ary)
// return ary[rand.Intn(l)]
// }

func Debug(msg ...interface{}) {
fmt.Println(msg)
}

func ChoiceInt(ary []int) int {
rand.Seed(time.Now().UnixNano())
l := len(ary)
return ary[rand.Intn(l)]
}

func ChoiceStr(ary []string) string {
rand.Seed(time.Now().UnixNano())
l := len(ary)
r := rand.Intn(l)
// fmt.Printf("Selected %s (element %d)\n", ary[r], r)
@@ -32,7 +23,6 @@ func ChoiceStr(ary []string) string {
}

func ChoiceMap(ary map[string]int) (string, int) {
rand.Seed(time.Now().UnixNano())
l := len(ary)
keys := make([]string, 0, l)
for k := range ary {
@@ -41,30 +31,3 @@ func ChoiceMap(ary map[string]int) (string, int) {
sel := ChoiceStr(keys)
return sel, ary[sel]
}

// func ChoiceMap(ary map[string]int) (string, int) {
// rand.Seed(time.Now().UnixNano())
// l := len(ary)
// if l == 0 {
// return "", 0
// }
// // fmt.Println(l)
// key, val, rot := "", 0, 0
// for key == "" {
// // Debug(rot, key, val)
// for k, v := range ary {
// // Debug(k, v)
// // Debug(rot)
// r := 0
// if rot < 3 {
// r = rand.Intn(l)
// }
// if r == 0 {
// return k, v
// }
// }
// rot++
// // fmt.Println(key, val)
// }
// return key, val
// }

Loading…
Peruuta
Tallenna