battle.go 546 B

123456789101112131415161718192021222324252627282930
  1. package rand
  2. const (
  3. dn9301 = int32(9301)
  4. dn49297 = int32(49297)
  5. dn233280 = int32(233280)
  6. dn2332800 = float64(233280)
  7. zero = float64(0)
  8. one = float64(1)
  9. )
  10. type Battle struct {
  11. seed int32
  12. originSeed int32
  13. }
  14. func (p *Battle) Seed(seed int32) {
  15. p.seed = seed
  16. p.originSeed = seed
  17. }
  18. func (p *Battle) Range01() float64 {
  19. return p.Range(zero, one)
  20. }
  21. func (p *Battle) Range(minVal, maxVal float64) float64 {
  22. p.seed = (p.seed*dn9301 + dn49297) % dn233280
  23. return minVal + (float64(p.seed) / dn2332800 * (maxVal - minVal))
  24. }