factorio_blueprint/examples/layout.rs

64 lines
1.8 KiB
Rust

use factorio_blueprint::{
belt_finding::{conflict_avoidance::ConflictAvoidance, Problem},
common::visualize::Visualize,
layout::Layout,
};
use rand::SeedableRng;
fn main() {
// let mut p = Problem::new(Position::new(10, 10));
// let b1 = p.add_block(Position::new(3, 2));
// let b2 = p.add_block(Position::new(5, 2));
// let b3 = p.add_block(Position::new(5, 7));
// p.add_connection(b1, Position::new(1, 0), b2, Position::new(1, 0));
// p.add_connection(b2, Position::new(3, 1), b3, Position::new(4, 6));
let file = std::fs::File::open("layout.yml").unwrap();
let p = serde_yaml::from_reader(file).unwrap();
for i in 0..1 {
let mut rng = rand::rngs::SmallRng::seed_from_u64(5);
let l = Layout::new(&p, &mut rng);
// let s = l.score();
l.print_visualization();
let m = l.mutate(&mut rng);
m.print_visualization();
let m = m.mutate(&mut rng);
m.print_visualization();
let m = m.mutate(&mut rng);
m.print_visualization();
let m = m.mutate(&mut rng);
m.print_visualization();
let m = m.mutate(&mut rng);
m.print_visualization();
let m = m.mutate(&mut rng);
m.print_visualization();
let m = m.mutate(&mut rng);
m.print_visualization();
let m = m.mutate(&mut rng);
m.print_visualization();
// let mut p = Problem::from_layout(&l);
// p.print();
// p.find_path();
// p.print();
// let mut c = ConflictAvoidance::new(p);
// c.remove_all_conflicts();
// c.print();
// println!("Seed: {i}, Score {}", s);
// l.print_visualization();
// if s < min {
// min = s;
// min_l = Some(l);
// }
}
}