diff options
Diffstat (limited to 'src/rand.rs')
| -rw-r--r-- | src/rand.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/rand.rs b/src/rand.rs new file mode 100644 index 0000000..f9aee46 --- /dev/null +++ b/src/rand.rs @@ -0,0 +1,17 @@ +pub struct Gen { + state: i64, +} + + +pub fn new(seed: i64) -> Gen { + Gen{ + state: seed, + } +} + +impl Gen { + pub fn rand(&mut self, max: i32) -> i32 { + self.state = self.state.wrapping_mul(6364136223846793005).wrapping_add(1); + (self.state >> 33 & 0x7fffffff) as i32 % max + } +} |
