blr_city_name/src/main.rs
2025-05-01 14:59:13 +05:30

58 lines
1.5 KiB
Rust

use macroquad::prelude::*;
use macroquad::rand;
#[macroquad::main("MyGame")]
async fn main() {
let mut rand_name = String::from("Random bangalore area names");
let mut last_update = 0.0;
loop {
clear_background(WHITE);
write_name(&rand_name);
let t = get_time();
if t - last_update > 1.75 {
rand_name = random_name();
last_update = get_time();
}
next_frame().await
}
}
fn write_name(random_name: &str) {
let font_size = 40.0;
let width = screen_width();
let height = screen_height();
let text_dimensions = measure_text(random_name, None, font_size as u16, 1.0);
draw_text(
&random_name,
(width - text_dimensions.width) / 2.,
(height - text_dimensions.height) / 2.,
font_size,
DARKGRAY,
);
}
fn random_name() -> String {
let prefix = read_segments(include_str!("./data/prefix.txt"));
let mid = read_segments(include_str!("./data/mid.txt"));
let suffix = read_segments(include_str!("./data/suffix.txt"));
format!(
"{}{}{}",
choose_random(&prefix),
choose_random(&mid),
choose_random(&suffix)
)
}
fn choose_random(prefix: &[&str]) -> String {
let idx = rand::gen_range(0, prefix.len());
match prefix.get(idx) {
Some(&name) => name.to_string(),
None => String::new(),
}
}
fn read_segments(file_contents: &str) -> Vec<&str> {
file_contents.lines().collect::<Vec<_>>()
}