correct room positions. no coridors yet.
This commit is contained in:
parent
0e40877eab
commit
eef0fc6c0b
|
@ -3,9 +3,9 @@
|
|||
use rand::prelude::*;
|
||||
|
||||
|
||||
/// Generate random number between start and end inclusive on both ends
|
||||
/// Generate random number between start (inclusive) and end (exclusive).
|
||||
pub fn random_range(rng: &mut StdRng, start: usize, end: usize) -> usize {
|
||||
let max = (end - start + 1) as u32;
|
||||
let max = (end - start) as u32;
|
||||
((rng.next_u32() % max) + start as u32) as usize
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ mod tests {
|
|||
let system_time = SystemTime::now().duration_since(UNIX_EPOCH).expect("Can't access system time");
|
||||
let mut rng = StdRng::seed_from_u64(system_time.as_millis() as u64);
|
||||
let x = random_range(&mut rng, 5, 8);
|
||||
assert!(x >= 5 && x <= 8);
|
||||
assert!(x >= 5 && x < 8);
|
||||
}
|
||||
|
||||
}
|
|
@ -56,8 +56,8 @@ impl RandomRoomsGen {
|
|||
for _ in 0..self.max_rooms {
|
||||
let w = random::random_range(rng, self.min_room_size, self.max_room_size);
|
||||
let h = random::random_range(rng, self.min_room_size, self.max_room_size);
|
||||
let x = random::random_range(rng, 0, width - w);
|
||||
let y = random::random_range(rng, 0, height - h);
|
||||
let x = random::random_range(rng, 1, width - w);
|
||||
let y = random::random_range(rng, 1, height - h);
|
||||
let new_room = Rect::new(x as i32, y as i32, w as i32, h as i32);
|
||||
let intersects = rooms.iter().any(|r| new_room.intersect(r));
|
||||
if !intersects {
|
||||
|
|
Loading…
Reference in New Issue
Block a user