use clap::Parser; use factorio_blueprint::{ common::visualize::Visualize, layout::{genetic_algorithm2, GeneticAlgorithm, PathLayout}, }; use rand::{rngs::SmallRng, SeedableRng}; #[derive(Debug, Parser)] struct Args { #[clap(default_value_t = 0)] seed: u64, } fn main() { let args = Args::parse(); let file = std::fs::File::open("layout3.yml").unwrap(); let p = serde_yaml::from_reader(file).unwrap(); let mut rng = SmallRng::seed_from_u64(args.seed); dbg!(&p); // let mut g = GeneticAlgorithm::new(&p, 20, 2, 0, &mut rng); // for i in 0..100 { // println!("Generatrion {i}"); // g.generation(&mut rng); // } // g.output_population(); let mut m: Option = None; for _ in 0..1 { let g = genetic_algorithm2(&p, 10, 320, &mut rng); g.print_visualization(); g.png_visualization("test.png"); if m.as_ref().is_none_or(|m| g.score() < m.score()) { m = Some(g); } } m.unwrap().print_visualization(); }