Files
RustyPropagation/src/main.rs
T
herel 113e91dcc8 working version
remove const

no need for RwLock as we don't use mut in thread \o/
2022-05-05 15:45:57 +02:00

55 lines
1.4 KiB
Rust

mod disease;
mod human;
mod population;
mod prelude {
pub use crate::disease::*;
pub use crate::human::*;
pub use crate::population::*;
pub use console::style;
pub use console::Term;
pub use rand::Rng;
pub const CORRECTED_PERCENTAGE: i32 = 101;
}
use prelude::*;
use clap::Parser;
#[derive(Parser, Debug)]
struct Args {
/// Number of threads
#[clap(short, long, default_value_t = 1)]
threads: usize,
}
fn main() {
let args = Args::parse();
let term = Term::stdout();
term.write_line("********** Rusty Propagation (Console) 2022 **********")
.expect("Oops Looks like we have a problem here...");
let disease = Disease::new(20, 10, 5, String::from("Covid 44"));
let mut population = Population::new(20, 10, 5, 1000, 1000, disease);
//population.change_disease(disease);
println!("After Filling");
//population.display();
//population.display();
let mut stats: [i32; 4];
// = [0,0,0,0];
let mut counter: u32 = 0;
loop {
counter += 1;
stats = population.propagate_new(Some(args.threads));
//population.display();
println!(
"Normal: {} Infecteds: {} Immunes: {} Deads: {}",
stats[0], stats[1], stats[2], stats[3]
);
if stats[1] == 0 {
break;
}
}
println!("Propagation finished in {} steps", counter);
//population.display();
}