main
HeNine 1 year ago
parent 35616e74cc
commit 848ca7c358

@ -0,0 +1,42 @@
use kartsimrust::{
combat::make_them_fight,
premade::{get_george, get_drub},
};
fn main() {
let mut a = 1.0;
let mut b = 1.0;
let mut total_turns = 0.0;
let mut battles = 0.0;
loop {
let mut george = get_george();
let mut drubs = (0..1).map(|_| get_drub()).collect::<Vec<_>>();
if let Some(turns) = make_them_fight(vec![&mut george], drubs.iter_mut().collect()) {
battles += 1.0;
total_turns += turns as f64;
if george.is_dead() {
b += 1.0;
println!("Bob died in {} turns.", turns)
} else {
a += 1.0;
println!("Drub died in {} turns.", turns)
}
if (a * b) / (f64::powi(a + b, 2) * (a + b + 1.0)) <= 0.0001 {
break;
}
} else {
println!("No one died.")
}
}
println!(
"George won {:.2}% of battles in an average of {:.1} turns.",
a / (a + b) * 100.0,
total_turns / battles
)
}

@ -20,6 +20,23 @@ pub fn get_bob() -> Character {
) )
} }
/*
* George is a swashbuckler.
* He has chosen to be more dextrous, and have better composure.
* George is a himbo.
*/
pub fn get_george() -> Character {
create_character(
"George".to_owned(),
Class::Swashbuckler,
Class::NPC,
StatBlock::from((0, 1, 0, 0, 0, 0, 1, 0)),
StatBlock::from((0, 2, 1, 0, -2, -1, 0, 0)),
Armor::None,
WeaponType::BladedWeapon.create_weapon("Rapier".to_owned()),
)
}
/* /*
* Drub is a goblin. * Drub is a goblin.
*/ */
@ -37,13 +54,13 @@ pub fn get_drub() -> Character {
drub.proficiencies.simple_weapons = true; drub.proficiencies.simple_weapons = true;
drub.proficiencies.light_armor = true; drub.proficiencies.light_armor = true;
return drub return drub;
} }
#[cfg(test)] #[cfg(test)]
mod premade_tests { mod premade_tests {
use super::{get_bob, get_drub}; use super::{get_bob, get_drub, get_george};
#[test] #[test]
fn print_bob() { fn print_bob() {
@ -52,6 +69,13 @@ mod premade_tests {
println!("{}", bob); println!("{}", bob);
} }
#[test]
fn print_george() {
let george = get_george();
println!("{}", george);
}
#[test] #[test]
fn print_drub() { fn print_drub() {
let drub = get_drub(); let drub = get_drub();

Loading…
Cancel
Save