64 lines
1.8 KiB
Rust
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);
|
|
// }
|
|
}
|
|
}
|