Browse Source

Random generation

master
Jirka Sejkora 4 years ago
parent
commit
748d9eaacd
  1. 12
      src/main.rs

12
src/main.rs

@ -25,10 +25,18 @@ impl City {
self.prices[house.y * SIZE + house.x] self.prices[house.y * SIZE + house.x]
} }
pub fn get_price_xy(&self, x: usize, y: usize) -> u16 {
self.prices[y * SIZE + x]
}
pub fn is_house(&self, house: &House) -> bool { pub fn is_house(&self, house: &House) -> bool {
self.get_price(&house) > 0 self.get_price(&house) > 0
} }
pub fn is_house_xy(&self, x: usize, y: usize) -> bool {
self.get_price_xy(x, y) > 0
}
pub fn get_house_count(&self) -> usize { pub fn get_house_count(&self) -> usize {
self.buyable_house_count self.buyable_house_count
} }
@ -72,13 +80,13 @@ fn main() {
let x = rng.gen_range(0..SIZE); let x = rng.gen_range(0..SIZE);
let y = rng.gen_range(0..SIZE); let y = rng.gen_range(0..SIZE);
let house = House::new(x, y); let house = House::new(x, y);
if city.is_house(&house) && !reachable[y * SIZE + x] { if city.is_house_xy(x, y) && !reachable[y * SIZE + x] {
for y in (house.y as i32 - 500).max(0)..=(house.y as i32 + 500).min((SIZE - 1) as i32) { for y in (house.y as i32 - 500).max(0)..=(house.y as i32 + 500).min((SIZE - 1) as i32) {
for x in (house.x as i32 - 500).max(0)..=(house.x as i32 + 500).min((SIZE - 1) as i32) { for x in (house.x as i32 - 500).max(0)..=(house.x as i32 + 500).min((SIZE - 1) as i32) {
let index = y as usize * SIZE + x as usize; let index = y as usize * SIZE + x as usize;
if !reachable[index] { if !reachable[index] {
reachable[index] = true; reachable[index] = true;
if city.is_house(&House::new(x as usize, y as usize)) { if city.is_house_xy(x as usize, y as usize) {
claimed_houses += 1; claimed_houses += 1;
} }
} }

Loading…
Cancel
Save