| ... | @@ -81,7 +81,7 @@ struct Rand { | ... | @@ -81,7 +81,7 @@ struct Rand { |
| 81 | // does not populate the remaining (buf.len % 4) bytes | 81 | // does not populate the remaining (buf.len % 4) bytes |
| 82 | fn get_bytes_aligned(r: &Rand, buf: []u8) -> usize { | 82 | fn get_bytes_aligned(r: &Rand, buf: []u8) -> usize { |
| 83 | var bytes_left = buf.len; | 83 | var bytes_left = buf.len; |
| 84 | while (bytes_left > 4) { | 84 | while (bytes_left >= 4) { |
| 85 | // TODO: array access so we can remove .ptr | 85 | // TODO: array access so we can remove .ptr |
| 86 | *(&buf.ptr[buf.len - bytes_left] as &u32) = r.get_u32(); | 86 | *(&buf.ptr[buf.len - bytes_left] as &u32) = r.get_u32(); |
| 87 | bytes_left -= #sizeof(u32); | 87 | bytes_left -= #sizeof(u32); |
| ... | @@ -104,10 +104,17 @@ pub fn rand_init(r: &Rand, seed: u32) { | ... | @@ -104,10 +104,17 @@ pub fn rand_init(r: &Rand, seed: u32) { |
| 104 | | 104 | |
| 105 | pub fn main(argc: isize, argv: &&u8, env: &&u8) -> i32 { | 105 | pub fn main(argc: isize, argv: &&u8, env: &&u8) -> i32 { |
| 106 | var rand : Rand; | 106 | var rand : Rand; |
| 107 | rand_init(&rand, 13); | 107 | var i : u8 = 0; |
| 108 | const answer = rand.range_u64(0, 100) + 1; | 108 | while (i < 20) { |
| 109 | print_str("random number: "); | 109 | rand_init(&rand, i); |
| 110 | print_u64(answer); | 110 | var j : u8 = 0; |
| 111 | print_str("\n"); | 111 | while (j < 20) { |
| | 112 | print_u64(rand.range_u64(0, 100) + 1); |
| | 113 | print_str(" "); |
| | 114 | j += 1; |
| | 115 | } |
| | 116 | print_str("\n"); |
| | 117 | i += 1; |
| | 118 | } |
| 112 | return 0; | 119 | return 0; |
| 113 | } | 120 | } |