Wow SDPhantom, you really put effort into this code, thanks!
I got the basic idea, just trying to sort off cycles now, as it gets stuck looping in a circle thinking it goes forward.
I need to add a "visited" check to skip going where we've already been I reckon.