forked from Maxluli/RustyPropagation
42 lines
1.3 KiB
Rust
42 lines
1.3 KiB
Rust
// use crate::prelude::*;
|
|
|
|
// pub const MUTATION_TRAIT_INCREASE_PROBABILITY:i32 = 50;
|
|
// pub const MUTATION_TRAIT_CHANGE_AMOUNT:i32 = 20;
|
|
|
|
// #[derive(Debug)]
|
|
pub struct Disease {
|
|
pub infection_rate: i32,
|
|
pub curing_rate: i32,
|
|
pub death_rate: i32,
|
|
pub traits: Vec<i32>,
|
|
pub name: String,
|
|
}
|
|
impl Disease {
|
|
pub fn new(infection_r: i32, curing_r: i32, death_r: i32, the_name: String) -> Self {
|
|
Self {
|
|
infection_rate: infection_r,
|
|
curing_rate: curing_r,
|
|
death_rate: death_r,
|
|
name: the_name,
|
|
traits: vec![infection_r, curing_r, death_r],
|
|
}
|
|
}
|
|
// pub fn mutate(&mut self){
|
|
// let mut rng = rand::thread_rng();
|
|
// for i in 0..self.traits.len(){
|
|
// let mut new_ratio:i32 = self.traits[i] as i32;
|
|
|
|
// if rng.gen_range(0..CORRECTED_PERCENTAGE) >= MUTATION_TRAIT_INCREASE_PROBABILITY{
|
|
// new_ratio += MUTATION_TRAIT_CHANGE_AMOUNT;
|
|
// }else{
|
|
// new_ratio -= MUTATION_TRAIT_CHANGE_AMOUNT;
|
|
// }
|
|
// if new_ratio < 0{
|
|
// new_ratio = 0;
|
|
// }
|
|
// new_ratio = new_ratio % CORRECTED_PERCENTAGE;
|
|
// self.traits[i] = new_ratio as u32;
|
|
// }
|
|
// }
|
|
}
|