Not bad at all! I was able to re-use huge swathes of code from day 6, which made me happy about what I built there. I think the code is pretty readable and expressive.
This feels like it belongs to some class of problem, but I'd have to look it up. I also bet that 2D grid traversal is fully implemented in several libraries.
In other world news, yay!! I'm caught up!!