Freelancer:
vfranchi
Using the A star algorithm
I placed an answer on Stackoverflow for you.