Calculate shortest path
Merge branch 'ningjing' of git@github.com:pinebud/angryfinger.git into ningjing