extern crate pack; use pack::puzzle::solver::solve; use pack::puzzle::piece::{Position, Template}; use pack::puzzle::pieces::Bag; use pack::util::target::brick; fn main(){ let target = brick(3, 3, 3); let bag = slothouber_graatsma_bag(); solve(&target, bag, &mut |solution|{ println!("{}", solution) }); } fn slothouber_graatsma_bag() -> Bag<(i8, i8, i8)> { Bag::new(vec!( Template::new(vec!( Position::new(0, 0, 0), Position::new(1, 0, 0), Position::new(0, 1, 0), Position::new(1, 1, 0), )), Template::new(vec!( Position::new(0, 0, 0), Position::new(1, 0, 0), Position::new(0, 1, 0), Position::new(1, 1, 0), )), Template::new(vec!( Position::new(0, 0, 0), Position::new(1, 0, 0), Position::new(0, 1, 0), Position::new(1, 1, 0), )), Template::new(vec!( Position::new(0, 0, 0), Position::new(1, 0, 0), Position::new(0, 1, 0), Position::new(1, 1, 0), )), Template::new(vec!( Position::new(0, 0, 0), Position::new(1, 0, 0), Position::new(0, 1, 0), Position::new(1, 1, 0), )), Template::new(vec!( Position::new(0, 0, 0), Position::new(1, 0, 0), Position::new(0, 1, 0), Position::new(1, 1, 0), )), Template::new(vec!( Position::new(0, 0, 0), )), Template::new(vec!( Position::new(0, 0, 0), )), Template::new(vec!( Position::new(0, 0, 0), )), )) }