diff --git a/.aocf/cache/aoc2023_16.json b/.aocf/cache/aoc2023_16.json index e32859c..eddc203 100644 --- a/.aocf/cache/aoc2023_16.json +++ b/.aocf/cache/aoc2023_16.json @@ -5,8 +5,8 @@ "title": "The Floor Will Be Lava", "stars": 2, "solution": { - "first": "6906", - "second": "7330" + "second": "7330", + "first": "6906" }, "input": "\\...\\..........|..\\........../...............................\\.\\.....................................-........\n..........................--............/.....-.../............-........................\\./.\\|\\...............\n...|.-\\.|.......|......../.....-........|........................\\......|..............\\......|...............\n...-\\.....................\\......../....../..............................|........-.........\\...-\\....-.......\n.........\\|............/-....-......-................\\....-........|./.........-..|....................|......\n..-.....\\........................-.....-..../..............||.............-.................|..........-.-././\n......................-\\......................................-/......||.........-.-......./..................\n|..\\................|.....\\.............\\.......|........-..................\\|.................|...-..........\n............................|.....|.......\\../..........\\......\\../..|..../........-..\\.-......-..............\n\\....-.....................\\....../............-/..|.........../-.........|.../................\\.......|\\...//\n.......-.-........../........-.........\\..../......................|.............|.....\\....|......../........\n.../......../.........|.....-.............|.....\\\\-.|..\\..........\\..|...............-.|...........-......-../\n............./.............../......./.................-.................|/...||............|.............|\\..\n...................-..................................../.\\..................|..........|........|...../..|./.\n.........................|......\\..../...........|..-......|..-.-../..\\.......\\............................|..\n.........\\..|...............//.........|................|................................./..-..-.............\n......||...........|...|../.............../....-......|..\\.....-..........\\..................\\.........../....\n............../-......|.................-......|........-...--................./.............|..........\\.....\n......\\.|./...........\\...................\\..-.........-.....-.-.......|./....................../.|..\\|.......\n./...........\\..|...................../....................................\\../.................\\...........\\.\n..............|............................./...\\.............../.....-.........\\./..-.../\\\\..................\n\\./|......\\............|.........................|....-../.......\\........./.............../-........../....\\.\n....-................................\\....................../.|...|.................-...|.......--............\n.......-....\\/../.................-/...-./...-...........................-.............\\...........|..........\n................................................\\........./............../.....|.......\\......|........\\./....\n..........-..../......-.............|...-.....\\..-......................-..\\.....|....../....\\./.....|........\n.......-...../..................-....../........./......./..............|......-....|....|.\\....|......-./-...\n......\\/.....................|.-.........-.....\\.....................-.-....|.................|.-\\./..........\n............\\...........-................|....|....|-......\\..|/............\\........-...-..........-....\\....\n...\\............-...........|.............|...............-......|.............\\..\\................\\..........\n...........................|..........|..................\\..\\........|...../......|....|..........-...........\n.......-.../..................-...\\\\.....\\..-.....|/..................................-.........../...........\n/......\\.\\........................../|........................-........-..................-..............-.|..\n../............|\\......|....|.........................../....-..\\.............../.............-........|......\n........./.........|\\........................|.\\....................|\\........................|....../........\n.../..........|......../....-......../.................\\................-...\\............/...........-....|...\n...................../...../../..-........\\/............-./..|................../.............................\n............./.......\\..-/.........\\..../..................|.\\...\\...-..-.-............\\..../....|........|\\..\n...../........|..............\\..|.|...|.-......-....\\.......................-.\\.......\\...........|...........\n..............\\..|................................/-.....-...|.............\\..//..\\......|...............|....\n...............................-......|\\............../.\\.\\............./......\\..............................\n............|/...\\.....|.......|..\\....................\\.../..................................................\n|........../......../............\\../...\\...\\.....-........|../................\\-.............../.........\\...\n.....|...-...................../..-...................\\........|./.......-...\\-.../....|.................|....\n...........-..................................\\.......\\....../..............................|.................\n........./.\\................\\...-.|........./......\\................-.../........|...\\.....\\.....|............\n.-....../......./....-...................\\.............-....................|.-.\\./........................\\..\n........./...../..........................-...............\\........-....................................\\.....\n\\..|...........................\\/...-................................................./.......-..\\....\\.......\n....-.|/../...../......./....................-..........-......-.........\\.........../...................\\....\n.................................../.........|...........................\\.....-..../.........................\n............/..../.../......\\........................-.......|............-........./|........-...............\n../......../..........-.........................................................-.........\\..-|...............\n...../../...................|.................|.........................................../......./..........\\\n...|..........||......................./......./...-..|..\\/......./................\\.\\........../...\\.........\n..-.\\\\..|................|....-.......................................-......../.../............|.............\n..............-../...............................-.......................\\....................|..........././.\n...\\............/.................|.-.|............./......|......-./...............\\.\\.................-.....\n.............|.............\\......|.................-|...|.........|.....-......../.......|...................\n...\\-............-..-................/.............-.......\\............\\.........-|...\\.............|........\n..........|.....\\...../...\\....../|.|.|......../-....--....\\........|...........|..........\\..................\n...............\\......./.....|............................|./.............-.|.......\\.-............\\.......|..\n....-..........................|\\....................................................................-........\n............\\........|...../\\/-........|./.......|..-........................../../.......-..........-........\n-..\\............\\..\\.../.......\\.........\\..............\\....../...........-.......\\....................|.....\n........|..........|.............|.............-..|..................|....-\\.././......|.............|........\n..../......................../|..|......................|..............................|...................-..\n.......-/.../........-........................\\....-./.-...........|........./....\\...........-...../.........\n........./-\\........../.................-.......\\...................-...\\.......\\.-...........\\...............\n.........................\\.../..........................||..|.|...............................................\n...................-........./..../........................\\................-.....................|...........\n...................................|.....\\...........|.........\\.../.-.-.......-....-....\\.............//.|.|.\n..../............|-.......././.........-............\\.....-......-................-......\\........\\.........-.\n.\\......................\\.|...\\.-........\\..............-..................-.........................../.../..\n..............|..\\../...............\\|..........\\./...................\\...........|...........................\n....|......\\.-\\.................-..................../........\\....-...../.............-.\\.|..................\n......................-.|..|........................\\...............-..\\..-..../....../...........|...\\.......\n...........|......\\................../....-...\\|................\\......../|........................|.........-\n...........-.............-...-................\\...-.......|.........../........-..............................\n............|................|....--.........../-.....|......\\.............../.........../...|................\n-.....\\............/....../.......|.........../...............................-.....//.................-......\n-..............|...........-..........|..-|-...-...........................................\\...........|......\n...../......|........-...\\.................-......|.......-.......................|..................././..-..\n\\..........................................\\...-..\\......./......-.......\\.....|..\\....\\.../.\\..........|...\\.\n............./.........-............../....|..../...-....|...-........\\............\\...................|......\n/.......|-..../..\\.....\\..............................\\............|..............-.....|..../............-...\n............\\................................................/......\\..............\\.|........................\n\\/..../.........|\\.....|.../....................../.../..-............-..........-.../.-..../.................\n.......|-..|...................../................\\..............\\............/........../\\...|..../..........\n........................................................................\\............/.....-.\\.-..............\n.......................\\.........../........\\......./.........|.............\\..|....................-.........\n.|.../-.......-.....\\...................|.........||..\\...|.-....|....\\..............\\.......-.|.......\\/.....\n........../.|.........|............../........\\...........|.-..................\\.\\-..........\\...-............\n....\\./..........\\.........\\../......||........\\..\\......-..........................................\\....\\....\n|...........\\.............../.....|............|..............\\...............-............|....\\.....-.......\n.||................................|..|..\\../...-........................\\..................\\.......|.........\n....................-.....\\..........................-|--|../.\\............................||......../........\n........|..../........................|........\\....-...|.../.............|.../../....\\..-..............-.....\n.......\\...\\......-...-.....................|....\\............-...|.-....\\.....-......-.......................\n..-......./...................../..../..........-\\......./..-./.................\\.\\..............|............\n....../............../................\\.........-......./..................................././...|...........\n......|-..................|-....|...../.|....................-............................\\...................\n...........|.......................................|....\\........./......./../......................\\|........\n..............|.\\........../.........................../......|.........................../............./../..\n.........-......\\........\\........-..........|...|..............|........./....-........../.././......./......\n............|.........\\.......\\.........|..............-......./.....|/....../......./....\\.........-\\........\n.............-.../..................-.......\\...................-/......-.........|........................\\..\n...............|.\\-|//..\\.|............................................/..../...........\\-....................\n..........|......./...\\../|.............................................................................../...\n...........................|.....--..................................-....\\...||-........./\\......-.....\\.\\...\n", "brief": { diff --git a/Cargo.lock b/Cargo.lock index 160b609..efd79fb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -24,6 +24,7 @@ dependencies = [ "aocf", "colored", "regex", + "serde_json", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 6e1d23d..73a9241 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,6 +9,7 @@ edition = "2021" aocf = "0.1.21" colored = "2.1.0" regex = "1.10.2" +serde_json = "1.0.120" [[bin]] name = "day01" diff --git a/src/aoc_input.rs b/src/aoc_input.rs index d960e17..d95cc99 100644 --- a/src/aoc_input.rs +++ b/src/aoc_input.rs @@ -1,15 +1,24 @@ +use core::panic; +use std::fs::read_to_string; + +use serde_json::Value; + pub fn get(year: i32, day: u32) -> Vec { let aoc_json_cache_path = format!(".aocf/cache/aoc{}_{}.json", year, day); let aoc_json_cache = aocf::Aoc::load_json_from(&aoc_json_cache_path); - let aoc_input = if aoc_json_cache.is_ok() { - aoc_json_cache - .unwrap() - .init() - .unwrap() - .get_input(false) - .unwrap() + if aoc_json_cache.is_ok() { + let json_struct: Value = + serde_json::from_str(&read_to_string(&aoc_json_cache_path).unwrap()).unwrap(); + + match &json_struct["input"] { + Value::String(s) => s.lines().map(|s| s.to_string()).collect(), + _ => panic!( + "Could not find String input field in json file: '{}'", + aoc_json_cache_path + ), + } } else { - panic!("No cache file found: {}", aoc_json_cache_path); + panic!("Could not find json file: '{}'", aoc_json_cache_path); aocf::Aoc::new() .year(Some(year)) .day(Some(day)) @@ -17,9 +26,8 @@ pub fn get(year: i32, day: u32) -> Vec { .unwrap() .get_input(true) .unwrap() - }; - aoc_input - .split("\n") - .map(str::to_string) - .collect::>() + .split("\n") + .map(str::to_string) + .collect::>() + } } diff --git a/src/day15.rs b/src/day15.rs index a58bf3c..5e9276e 100644 --- a/src/day15.rs +++ b/src/day15.rs @@ -229,7 +229,6 @@ fn main() { .filter(|s| !s.is_empty()) .cloned() .collect(); - dbg!(&input); let sequence = Step::from_string_list(&input); let steps_sum = sum_steps(&sequence);