Not a fun day, at least for me. This was all about mapping and following pipes. I had trouble mentally holding everything together and piecing together the logic. This puzzle ended up taking up a lot of mind space and eventually I did get part 1 working.
Part 2 involved finding the enclosed area of the map and for this I gave up. I may give this a shot once I figure out or learn the trick as I feel like there is something there.
The great thing with this day is that it really highlights something I'm lacking and it gives me a direction to read in.
The coolest thing about this puzzle was that I used an internal subroutine and recursion to find the answer for the test case. I used my own stack implementation to manage the recursion depth. This ultimately proved to be silly as the input data blew up the internal gosub stack.
I quickly changed the logic to be iterative which was actually simple as my stack was being managed directly so I didn't need to rely on the BASIC stack anyway, I just hadn't realized.
This is the first puzzle that made me wonder how does Eric, the maker of AoC come up with these puzzles. Very cool.