From d7b5a2ffaa34541f5c8c34d170c74c1ed86f71a3 Mon Sep 17 00:00:00 2001 From: Jos van Goor Date: Sat, 6 Dec 2025 17:50:17 +0100 Subject: [PATCH] Advent 2016 Day 2 Part 1 --- advent_of_code_2016/src/day2/input.txt | 5 +++++ advent_of_code_2016/src/day2/mod.rs | 2 ++ advent_of_code_2016/src/day2/part1.rs | 27 ++++++++++++++++++++++++++ advent_of_code_2016/src/day2/part2.rs | 3 +++ advent_of_code_2016/src/day2/test.txt | 4 ++++ advent_of_code_2016/src/main.rs | 4 ++-- 6 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 advent_of_code_2016/src/day2/input.txt create mode 100644 advent_of_code_2016/src/day2/mod.rs create mode 100644 advent_of_code_2016/src/day2/part1.rs create mode 100644 advent_of_code_2016/src/day2/part2.rs create mode 100644 advent_of_code_2016/src/day2/test.txt diff --git a/advent_of_code_2016/src/day2/input.txt b/advent_of_code_2016/src/day2/input.txt new file mode 100644 index 0000000..ae7bc56 --- /dev/null +++ b/advent_of_code_2016/src/day2/input.txt @@ -0,0 +1,5 @@ +UUURRRRULRDLRDRRDURDDDLLDLLLULDUDDLDLULUURULRLDLRRLLLRRDRRLDDLLULUDUDDLRDRDUURDLURUURLRULLDDURULRRURDUURLULUUUURDDDDUUDLULRULLLRLLRRRURDLLRLLRRRUURULRDRUUDDDDDLLLRURRURRUURDUURDDRDLULRRLLLDRRRLURRLLURLDRRDDLDLRRLLRDRLLLLDLULDLRRDRRLDDURLULLUDLUDRRDRRLRLULURDRLRLUUUDLRLDLLLURDUDULULDDRUUURLLLDLLDDUDDRURURUDDLUULRDRRRRLDRDDURLUDURDULLDLUDLULDRLRLLRLLLLRURDURLLDRRDRLRUUUUULLLRUDURUDLLLUDLLLLRDLDRDUDRURLUDDUDDURLUUUUDDLLUDLULLLLLDUDLLRLRRDDDULULRLDRLLULDLUDLLURULRDDUURULRDLDLDLRL +URUUURDULUDLUUUUDDRRRDRRRLDUDLRDRRDRDDLRUULDLLDUDULLLRLDRDRRLDLDLUUDRUULDUDULDUDURURDDURULDLURULRLULDUDDUULDLLLDDURDDRDDURUULUUDRLDDULDRRRRDURRUDLLLURDDDLRULLRDDRDDDDLUUDRDUULRRRRURULDDDLDDRDRRUDRRURUDRDDLDRRRLLURURUULUUDRDULLDRLRDRRDDURDUDLDRLUDRURDURURULDUUURDUULRRRRRUDLLULDDDRLULDDULUDRRRDDRUDRRDLDLRUULLLLRRDRRLUDRUULRDUDRDRRRDDRLLRUUDRLLLUDUDLULUUDULDRRRRDDRURULDULLURDLLLDUUDLLUDRLDURRRLDDDURUDUDURRULDD +LRUDDULLLULRLUDUDUDRLLUUUULLUDLUUUUDULLUURDLLRDUDLRUDRUDDURURRURUDLLLRLDLUDRRRRRRDLUURLRDDDULRRUDRULRDRDDUULRDDLDULDRRRDDLURRURLLLRURDULLRUUUDDUDUURLRLDDUURLRDRRLURLDRLLUUURDRUUDUUUDRLURUUUDLDRRLRLLRRUURULLLRLLDLLLDULDDLDULDLDDRUDURDDURDUDURDLLLRRDDLULLLUDURLUDDLDLUUDRDRUDUUDLLDDLLLLDRDULRDLDULLRUDDUULDUDLDDDRUURLDRRLURRDDRUUDRUDLLDLULLULUDUDURDDRLRDLRLDRLDDRULLLRUDULDRLRLRULLRLLRRRLLRRRDDRULRUURRLLLRULDLUDRRDDLLLUDDUDDDLURLUDRDLURUUDLLDLULURRLLDURUDDDDRLULRDDLRLDDLRLLDDRRLRDUDUUULRRLRULUDURDUDRLRLRUDUDLLRRRRLRRUDUL +RULLLLUUUDLLDLLRULLRURRULDDRDLUULDRLLRUDLLRRLRDURLLDUUUUURUUURDLUURRLDDDLRRRRLRULDUDDLURDRRUUDLRRRDLDDUDUDDRUDURURLDULLDLULDLLUDLULRDRLLURRLLDURLDLRDLULUDDULDLDDDDDUURRDRURLDLDULLURDLLDDLLUDLDLDRLRLDLRDRLDLRRUUDRURLUUUDLURUULDUDRDULLDURUDLUUURRRLLDUDUDDUUULLLRUULDLURUDDRLUDRDDLDLLUDUDRRRDDUUULUULLLRLLUURDUUDRUUULULLDLDRUUDURLLUULRLDLUURLLUUDRURDDRLURULDUDUUDRRUUURDULRLDUUDDRURURDRRULDDDRLUDLLUUDURRRLDLRLRDRURLURLLLRLDDLRRLDLDDURDUUDRDRRLDRLULDRLURUUUDDRLLLDDLDURLLLLDRDLDRRUDULURRLULRDRLLUULLRLRDRLLULUURRUDRUDDDLLDURURLURRRDLLDRDLUDRULULULRLDLRRRUUDLULDURLRDRLULRUUURRDDLRUURUDRURUDURURDD +DURRDLLLDDLLDLLRLULULLRDLDRRDDRDLRULURRDUUDDRLLDDLDRRLRDUDRULDLRURDUUDRDDLLDRRDRUDUDULLDDDDLDRRRLRLRDRDLURRDDLDDDUUDRDRLLLDLUDDDLUULRDRLLLRLLUULUDDDRLDUUUURULRDDURRDRLUURLUDRLRLLLDDLRDDUULRRRRURDLDDDRLDLDRRLLDRDDUDDUURDLDUUDRDLDLDDULULUDDLRDDRLRLDDLUDLLDRLUDUDDRULLRLDLLRULRUURDDRDRDRURDRRLRDLLUDDRRDRRLDDULLLDLUDRRUDLDULDRURRDURLURRLDLRDLRUDLULUDDRULRLLDUURULURULURRLURRUULRULRRRLRDLULRLRLUDURDDRUUURDRLLRRRDDLDRRRULLDLRDRULDRRLRRDLUDDRDDDUUURRLULLDRRUULULLRRRRLDDRDDLUURLLUDLLDUDLULUULUDLLUUURRRUDDDRLLLRDRUUDUUURDRULURRLRDLLUURLRDURULDRRUDURRDDLDRLDRUUDRLLUDLRRU \ No newline at end of file diff --git a/advent_of_code_2016/src/day2/mod.rs b/advent_of_code_2016/src/day2/mod.rs new file mode 100644 index 0000000..8e2a92e --- /dev/null +++ b/advent_of_code_2016/src/day2/mod.rs @@ -0,0 +1,2 @@ +pub mod part1; +pub mod part2; \ No newline at end of file diff --git a/advent_of_code_2016/src/day2/part1.rs b/advent_of_code_2016/src/day2/part1.rs new file mode 100644 index 0000000..13a591a --- /dev/null +++ b/advent_of_code_2016/src/day2/part1.rs @@ -0,0 +1,27 @@ + +pub fn solve(input: &str) { + let digits = [1, 2, 3, 4, 5, 6, 7, 8, 9]; + let instructions = input.lines().map(|line| line.as_bytes().iter().map(|ch| { + match ch { + b'U' => 0, + b'R' => 1, + b'D' => 2, + b'L' => 3, + _ => panic!("what the delly?") + } + }).collect::>()).collect::>(); + + let directions: [(i32, i32); 4] = [(0, -1), (1, 0), (0, 1), (-1, 0)]; + let mut position = (1, 1); + + print!("code: "); + for digit in instructions { + for instruction in digit { + let x = (position.0 + directions[instruction].0).clamp(0, 2); + let y = (position.1 + directions[instruction].1).clamp(0, 2); + position = (x, y); + } + + print!("{}", digits[(position.0 + position.1 * 3) as usize]); + } +} diff --git a/advent_of_code_2016/src/day2/part2.rs b/advent_of_code_2016/src/day2/part2.rs new file mode 100644 index 0000000..b3778be --- /dev/null +++ b/advent_of_code_2016/src/day2/part2.rs @@ -0,0 +1,3 @@ +pub fn solve(input: &str) { + +} diff --git a/advent_of_code_2016/src/day2/test.txt b/advent_of_code_2016/src/day2/test.txt new file mode 100644 index 0000000..49be97c --- /dev/null +++ b/advent_of_code_2016/src/day2/test.txt @@ -0,0 +1,4 @@ +ULL +RRDDD +LURDL +UUUUD \ No newline at end of file diff --git a/advent_of_code_2016/src/main.rs b/advent_of_code_2016/src/main.rs index 3c394c4..28dab27 100644 --- a/advent_of_code_2016/src/main.rs +++ b/advent_of_code_2016/src/main.rs @@ -1,5 +1,5 @@ use paste::paste; mod utility; -solve_day!{1} -// test_day!{1} +solve_day!{2} +//test_day!{2}