zworld-demo/plugin/math/random/random.go

29 lines
394 B
Go
Raw Normal View History

2023-12-22 22:04:27 +08:00
package random
import (
"math/rand"
"time"
)
func init() {
seed := time.Now().Nanosecond()
Seed(seed)
}
func Seed(seed int) {
rand.Seed(int64(seed))
}
func Range(min, max float32) float32 {
return min + rand.Float32()*(max-min)
}
func Chance(chance float32) bool {
return Range(0, 1) <= chance
}
func Choice[T any](slice []T) T {
idx := rand.Intn(len(slice))
return slice[idx]
}