working A* with forward checking, and fully commented for you to use.
NOTE: there is a bug in it somewhere and not all room combinations work
yet.