| func ChoiceMap(ary map[string]int) (string, int) { | func ChoiceMap(ary map[string]int) (string, int) { | ||||
| rand.Seed(time.Now().UnixNano()) | rand.Seed(time.Now().UnixNano()) | ||||
| l := len(ary) | l := len(ary) | ||||
| if l == 0 { | |||||
| return "", 0 | |||||
| keys := make([]string, 0, l) | |||||
| for k := range ary { | |||||
| keys = append(keys, k) | |||||
| } | } | ||||
| // 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 | |||||
| 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 | |||||
| // } |