rand.go 446 B

123456789101112131415161718192021222324
  1. package rand
  2. import (
  3. "f1-game/internal/types"
  4. "math/rand"
  5. )
  6. func RangeInt[T types.IntType](minVal, maxVal T) T {
  7. if minVal > maxVal {
  8. minVal, maxVal = maxVal, minVal
  9. }
  10. n := rand.Int63n(int64(maxVal-minVal+1)) + int64(minVal)
  11. return T(n)
  12. }
  13. func RangeFloat[T types.FloatType](minVal, maxVal T) T {
  14. if minVal > maxVal {
  15. minVal, maxVal = maxVal, minVal
  16. }
  17. n := rand.Float64()*float64(maxVal-minVal) + float64(minVal)
  18. return T(n)
  19. }