Well, I got a rudimentary A* algorithm working. The bad news is it takes longer
than a round lasts to calculate a path to anywhere further than ~15 squares
away. I'll work on optimizing it next.