22 lines
553 B
Rust
22 lines
553 B
Rust
|
use rand::Rng;
|
||
|
use crate::city::{SIZE, House, HouseLayout};
|
||
|
use rand::prelude::StdRng;
|
||
|
|
||
|
pub(crate) fn populate_random(layout: &mut HouseLayout, rng: &mut StdRng) {
|
||
|
loop {
|
||
|
loop {
|
||
|
let x = rng.gen_range(0..SIZE);
|
||
|
let y = rng.gen_range(0..SIZE);
|
||
|
let house = House::new(x, y);
|
||
|
if layout.city.is_house_xy(x, y) && !layout.is_covered(house) {
|
||
|
layout.add_house(house);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if layout.is_valid() {
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|