38 lines
858 B
Rust
38 lines
858 B
Rust
#[allow(unused)]
|
|
mod engine;
|
|
|
|
#[allow(unused)]
|
|
mod solver;
|
|
|
|
#[allow(unused)]
|
|
mod generator;
|
|
|
|
use crate::generator::generator::generate;
|
|
use crate::solver::solver::Solver;
|
|
|
|
fn main() {
|
|
let start = std::time::Instant::now();
|
|
let board = generate();
|
|
let elapsed = start.elapsed();
|
|
|
|
println!("Generated a problem in {} ms", elapsed.as_millis());
|
|
|
|
let Some(board) = board else {
|
|
println!(
|
|
"Failed to generate a board after {} ms, Try again",
|
|
elapsed.as_millis()
|
|
);
|
|
return;
|
|
};
|
|
|
|
println!("{}", board.print());
|
|
let solutions = Solver::new(board).solve();
|
|
println!("Found {} solutions", solutions.len());
|
|
let solution = solutions.first().unwrap();
|
|
let mut idx = 0;
|
|
solution.iter().for_each(|m| {
|
|
idx += 1;
|
|
println!("{}. {}", idx, m.notation());
|
|
});
|
|
}
|