design the A* in delegate

delegate A* to BattleMap, make A* more flexible and reuseable