|
|
|
|
@ -56,12 +56,22 @@ impl Map
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
|
// MAIN MAIN MAIN MAIN MAIN
|
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
|
fn main()
|
|
|
|
|
{
|
|
|
|
|
let input = load_data("data/test_input");
|
|
|
|
|
let (seeds, maps) = parse_input(&input);
|
|
|
|
|
|
|
|
|
|
println!("SEEDS: {:#?}, MAPS: {:#?}", seeds, maps);
|
|
|
|
|
|
|
|
|
|
let test_1 = maps["seed-to-soil"].map_input(99);
|
|
|
|
|
let test_2 = maps["seed-to-soil"].map_input(53);
|
|
|
|
|
let test_3 = maps["seed-to-soil"].map_input(47);
|
|
|
|
|
|
|
|
|
|
println!("=========TESTS:\n\tseed-to-soil {} maps to {}\n\n\tseed-to-soil {} maps to {}\n\n\tseed-to-soil {} maps to {}\n",
|
|
|
|
|
99, test_1, 53, test_2, 47, test_3);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn parse_input(input: &str) -> (Vec<i32>, HashMap<String, Map>) // String is the map name
|
|
|
|
|
@ -94,8 +104,7 @@ fn parse_input(input: &str) -> (Vec<i32>, HashMap<String, Map>) // String is the
|
|
|
|
|
// NEW MAP
|
|
|
|
|
if line.contains("map:")
|
|
|
|
|
{
|
|
|
|
|
let name = line.trim_end_matches("map:");
|
|
|
|
|
current_map = name.clone();
|
|
|
|
|
current_map = line.trim().trim_end_matches("map:").trim();
|
|
|
|
|
let map = Map::new(¤t_map);
|
|
|
|
|
maps.insert(current_map.to_string(), map.clone());
|
|
|
|
|
continue;
|
|
|
|
|
|