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 } }